blob: 981f1c952f0ff9ea1d905341498289f6e401ae48 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage line-rate="0.6122563455335858" branch-rate="0.46805258330785693" lines-covered="4366" lines-valid="7131" branches-covered="1531" branches-valid="3271" complexity="2.0665362035225048" version="1.9.4.1" timestamp="1464233492484">
<sources>
<source>--source</source>
<source>/Users/demers/dev/source/shiro/core/src/main/java</source>
</sources>
<packages>
<package name="org.apache.shiro" line-rate="0.8888888888888888" branch-rate="1.0" complexity="1.4444444444444444">
<classes>
<class name="org.apache.shiro.SecurityUtils" filename="org/apache/shiro/SecurityUtils.java" line-rate="0.9333333333333333" 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="47" branch="false"/>
<line number="116" hits="47" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="36" branch="false"/>
<line number="119" hits="47" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="5" branch="false"/>
<line number="123" hits="5" branch="false"/>
<line number="125" hits="42" 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="23" branch="false"/>
<line number="55" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="56" hits="12" branch="false"/>
<line number="57" hits="12" branch="false"/>
<line number="59" hits="23" 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="35" branch="false"/>
<line number="96" hits="35" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="54" hits="23" branch="false"/>
<line number="55" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="56" hits="12" branch="false"/>
<line number="57" hits="12" branch="false"/>
<line number="59" hits="23" branch="false"/>
<line number="95" hits="35" branch="false"/>
<line number="96" hits="35" branch="false"/>
<line number="115" hits="47" branch="false"/>
<line number="116" hits="47" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="36" branch="false"/>
<line number="119" hits="47" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="5" branch="false"/>
<line number="123" hits="5" branch="false"/>
<line number="125" hits="42" 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="11" branch="false"/>
<line number="36" hits="11" 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="63" branch="false"/>
<line number="45" hits="63" 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="17" branch="false"/>
<line number="64" hits="17" 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="11" branch="false"/>
<line number="54" hits="11" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="11" branch="false"/>
<line number="36" hits="11" branch="false"/>
<line number="44" hits="63" branch="false"/>
<line number="45" hits="63" branch="false"/>
<line number="53" hits="11" branch="false"/>
<line number="54" hits="11" branch="false"/>
<line number="63" hits="17" branch="false"/>
<line number="64" hits="17" 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="5" branch="false"/>
<line number="31" hits="5" 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="5" branch="false"/>
<line number="31" hits="5" 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="5" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" 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="5" 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="5" 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="5" branch="false"/>
<line number="73" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="5" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="false"/>
<line number="57" hits="5" branch="false"/>
<line number="68" hits="5" 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="5" branch="false"/>
<line number="73" hits="5" 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="2" 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="2" 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="2" branch="false"/>
<line number="56" hits="2" 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="2" branch="false"/>
<line number="62" hits="2" 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="2" branch="false"/>
<line number="52" hits="2" 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="2" branch="false"/>
<line number="56" hits="2" 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="2" branch="false"/>
<line number="62" hits="2" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="57" branch="false"/>
<line number="70" hits="57" branch="false"/>
<line number="71" hits="57" 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="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="1" branch="false"/>
<line number="194" hits="27" branch="false"/>
<line number="198" hits="27" branch="false"/>
<line number="199" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="1" branch="false"/>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
<line number="206" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="207" hits="6" branch="false"/>
<line number="209" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="212" hits="2" branch="false"/>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="216" hits="2" branch="false"/>
<line number="219" hits="8" 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="8" branch="false"/>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="19" branch="false"/>
<line number="233" hits="19" branch="false"/>
<line number="235" hits="19" branch="false"/>
<line number="237" hits="19" branch="false"/>
</lines>
</method>
<method name="getAuthenticationListeners" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="2" 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="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="1" branch="false"/>
<line number="139" hits="1" branch="false"/>
<line number="140" hits="8" 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="9" 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="9" 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="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" branch="false"/>
<line number="123" hits="19" 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="9" branch="false"/>
<line number="166" hits="9" 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="1" branch="false"/>
<line number="69" hits="57" branch="false"/>
<line number="70" hits="57" branch="false"/>
<line number="71" hits="57" 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="2" branch="false"/>
<line number="120" hits="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" branch="false"/>
<line number="123" hits="19" branch="false"/>
<line number="137" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="1" branch="false"/>
<line number="139" hits="1" branch="false"/>
<line number="140" hits="8" branch="false"/>
<line number="152" hits="9" 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="9" branch="false"/>
<line number="165" hits="9" branch="false"/>
<line number="166" hits="9" 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="191" hits="1" branch="false"/>
<line number="194" hits="27" branch="false"/>
<line number="198" hits="27" branch="false"/>
<line number="199" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="1" branch="false"/>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
<line number="206" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="207" hits="6" branch="false"/>
<line number="209" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="212" hits="2" branch="false"/>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="216" hits="2" branch="false"/>
<line number="219" hits="8" 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="8" branch="false"/>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="19" branch="false"/>
<line number="233" hits="19" branch="false"/>
<line number="235" hits="19" branch="false"/>
<line number="237" hits="19" 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="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="5" branch="false"/>
<line number="43" hits="5" 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="5" branch="false"/>
<line number="43" hits="5" 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.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="6" branch="false"/>
<line number="37" hits="6" 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="18" branch="false"/>
<line number="46" hits="18" 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="10" branch="false"/>
<line number="65" hits="10" 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="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="6" branch="false"/>
<line number="37" hits="6" branch="false"/>
<line number="45" hits="18" branch="false"/>
<line number="46" hits="18" branch="false"/>
<line number="54" hits="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
<line number="64" hits="10" branch="false"/>
<line number="65" hits="10" 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="1" branch="false"/>
<line number="45" hits="1" 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="1" branch="false"/>
<line number="54" hits="1" 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="1" branch="false"/>
<line number="73" hits="1" 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="1" branch="false"/>
<line number="63" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="63" hits="1" branch="false"/>
<line number="72" hits="1" branch="false"/>
<line number="73" hits="1" 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="2" branch="false"/>
<line number="34" 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="42" hits="6" branch="false"/>
<line number="43" hits="6" 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="2" branch="false"/>
<line number="62" 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="51" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="2" branch="false"/>
<line number="34" hits="2" branch="false"/>
<line number="42" hits="6" branch="false"/>
<line number="43" hits="6" branch="false"/>
<line number="51" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" 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="1" branch="false"/>
<line number="35" hits="1" 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="1" branch="false"/>
<line number="44" hits="1" 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="1" branch="false"/>
<line number="63" hits="1" 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="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="1" branch="false"/>
<line number="35" hits="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="63" hits="1" 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="1" branch="false"/>
<line number="37" hits="1" 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="1" branch="false"/>
<line number="46" hits="1" 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="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="1" branch="false"/>
<line number="37" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
<line number="39" hits="1" 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="1" branch="false"/>
<line number="48" hits="1" 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="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="48" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="41" hits="1" 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="5" branch="false"/>
<line number="50" hits="5" 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="1" branch="false"/>
<line number="69" hits="1" 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="1" branch="false"/>
<line number="59" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="1" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="49" hits="5" branch="false"/>
<line number="50" hits="5" branch="false"/>
<line number="58" hits="1" branch="false"/>
<line number="59" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="69" hits="1" 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="1" branch="false"/>
<line number="39" hits="1" 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="1" branch="false"/>
<line number="48" hits="1" 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="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="48" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" 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="40" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="40" 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="40" branch="false"/>
<line number="123" hits="40" branch="false"/>
<line number="124" hits="40" branch="false"/>
<line number="125" hits="40" 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="24" branch="false"/>
<line number="387" hits="24" 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="38" branch="false"/>
<line number="302" hits="38" 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="10" 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="1" branch="false"/>
</lines>
</method>
<method name="getObjectPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="359" hits="6" 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="146" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="281" hits="54" branch="false"/>
</lines>
</method>
<method name="getStringPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="321" hits="6" 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="8" branch="false"/>
</lines>
</method>
<method name="isLocked" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="395" hits="8" 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="37" branch="false"/>
<line number="249" hits="37" 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="1" branch="false"/>
<line number="227" hits="1" 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="11" branch="false"/>
<line number="292" hits="11" 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="43" 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="40" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="40" 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="40" branch="false"/>
<line number="123" hits="40" branch="false"/>
<line number="124" hits="40" branch="false"/>
<line number="125" hits="40" 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="146" branch="false"/>
<line number="226" hits="1" branch="false"/>
<line number="227" hits="1" branch="false"/>
<line number="237" hits="10" branch="false"/>
<line number="248" hits="37" branch="false"/>
<line number="249" hits="37" branch="false"/>
<line number="260" hits="1" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="281" hits="54" branch="false"/>
<line number="291" hits="11" branch="false"/>
<line number="292" hits="11" branch="false"/>
<line number="301" hits="38" branch="false"/>
<line number="302" hits="38" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="321" hits="6" 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="6" 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="24" branch="false"/>
<line number="387" hits="24" branch="false"/>
<line number="395" hits="8" branch="false"/>
<line number="404" hits="0" branch="false"/>
<line number="405" hits="0" branch="false"/>
<line number="414" hits="8" 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="43" 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="5" branch="false"/>
<line number="60" hits="5" 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="29" branch="false"/>
<line number="74" hits="29" branch="false"/>
<line number="75" hits="29" branch="false"/>
<line number="76" hits="29" 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="1" branch="false"/>
<line number="93" hits="1" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="96" hits="1" 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="40" branch="false"/>
<line number="106" hits="40" branch="false"/>
<line number="107" hits="40" branch="false"/>
<line number="108" hits="40" 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="1" 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="31" 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="20" 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="173" 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="3" 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="1" branch="false"/>
<line number="198" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="199" hits="1" branch="false"/>
<line number="201" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="1" branch="false"/>
<line number="213" 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="214" hits="2" branch="false"/>
<line number="217" hits="2" branch="false"/>
<line number="218" hits="2" branch="false"/>
<line number="220" hits="2" 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="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="226" hits="2" 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="37" branch="false"/>
<line number="151" hits="37" 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="4" branch="false"/>
<line number="185" hits="4" 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="2" branch="false"/>
<line number="138" hits="2" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="279" hits="42" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="59" hits="5" branch="false"/>
<line number="60" hits="5" branch="false"/>
<line number="73" hits="29" branch="false"/>
<line number="74" hits="29" branch="false"/>
<line number="75" hits="29" branch="false"/>
<line number="76" hits="29" branch="false"/>
<line number="92" hits="1" branch="false"/>
<line number="93" hits="1" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="96" hits="1" branch="false"/>
<line number="105" hits="40" branch="false"/>
<line number="106" hits="40" branch="false"/>
<line number="107" hits="40" branch="false"/>
<line number="108" hits="40" 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="173" branch="false"/>
<line number="137" hits="2" branch="false"/>
<line number="138" hits="2" branch="false"/>
<line number="141" hits="31" branch="false"/>
<line number="150" hits="37" branch="false"/>
<line number="151" hits="37" branch="false"/>
<line number="167" hits="20" branch="false"/>
<line number="184" hits="4" branch="false"/>
<line number="185" hits="4" branch="false"/>
<line number="194" hits="3" 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="1" branch="false"/>
<line number="198" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="199" hits="1" branch="false"/>
<line number="201" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="1" branch="false"/>
<line number="213" 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="214" hits="2" branch="false"/>
<line number="217" hits="2" branch="false"/>
<line number="218" hits="2" branch="false"/>
<line number="220" hits="2" 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="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="226" hits="2" 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="1" 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="42" 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="1" branch="false"/>
<line number="38" hits="1" 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="2" branch="false"/>
<line number="47" 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="65" hits="1" branch="false"/>
<line number="66" hits="1" 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="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" 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="39" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="39" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="142" hits="3" 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="42" branch="false"/>
<line number="185" hits="42" branch="false"/>
<line number="187" hits="42" branch="false"/>
<line number="188" hits="42" branch="false"/>
<line number="189" hits="42" branch="false"/>
<line number="190" hits="42" branch="false"/>
<line number="191" hits="42" 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="36" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="286" hits="34" branch="false"/>
</lines>
</method>
<method name="getPassword" signature="()[C" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="242" hits="36" branch="false"/>
</lines>
</method>
<method name="getPrincipal" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="261" hits="14" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="223" hits="33" 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="74" branch="false"/>
<line number="359" hits="74" branch="false"/>
<line number="360" hits="74" branch="false"/>
<line number="361" hits="74" branch="false"/>
<line number="362" hits="74" branch="false"/>
<line number="363" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="364" hits="5" branch="false"/>
<line number="366" hits="74" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="68" hits="42" 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="39" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="39" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="141" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="142" hits="3" 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="42" branch="false"/>
<line number="187" hits="42" branch="false"/>
<line number="188" hits="42" branch="false"/>
<line number="189" hits="42" branch="false"/>
<line number="190" hits="42" branch="false"/>
<line number="191" hits="42" 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="33" branch="false"/>
<line number="232" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
<line number="242" hits="36" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="261" hits="14" branch="false"/>
<line number="271" hits="36" branch="false"/>
<line number="286" hits="34" 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="74" branch="false"/>
<line number="359" hits="74" branch="false"/>
<line number="360" hits="74" branch="false"/>
<line number="361" hits="74" branch="false"/>
<line number="362" hits="74" branch="false"/>
<line number="363" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="364" hits="5" branch="false"/>
<line number="366" hits="74" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authc.credential" line-rate="0.9398907103825137" 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="20" 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="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="20" branch="false"/>
<line number="41" hits="5" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="16" branch="false"/>
<line number="55" hits="16" branch="false"/>
<line number="57" hits="16" branch="false"/>
<line number="58" hits="16" branch="false"/>
<line number="59" hits="16" branch="false"/>
<line number="60" hits="16" branch="false"/>
<line number="61" hits="16" branch="false"/>
<line number="63" hits="16" branch="false"/>
<line number="64" hits="16" branch="false"/>
<line number="65" hits="16" 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="5" branch="false"/>
</lines>
</method>
<method name="checkHashFormatDurability" signature="()V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="102" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="8" branch="false"/>
<line number="106" hits="8" 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="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="116" hits="8" 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="26" 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="8" 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="8" branch="false"/>
<line number="69" hits="8" branch="false"/>
<line number="70" hits="8" 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="1" 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="1" 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="3" 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="9" branch="false"/>
<line number="75" hits="9" 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="2" branch="false"/>
<line number="78" hits="7" branch="false"/>
<line number="79" hits="7" 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="10" branch="false"/>
<line number="129" 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="130" hits="3" 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="7" 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="1" branch="false"/>
<line number="142" hits="6" branch="false"/>
<line number="144" 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="146" hits="5" branch="false"/>
<line number="147" hits="5" branch="false"/>
<line number="149" hits="5" branch="false"/>
<line number="160" hits="1" branch="false"/>
<line number="161" hits="1" branch="false"/>
<line number="162" hits="1" branch="false"/>
<line number="164" hits="1" 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="7" branch="false"/>
<line number="85" hits="7" 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="1" 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="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="89" hits="1" branch="false"/>
<line number="93" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="97" hits="5" 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="2" branch="false"/>
<line number="191" hits="2" 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="1" branch="false"/>
<line number="199" hits="1" 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="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="1" branch="false"/>
<line number="54" hits="16" branch="false"/>
<line number="55" hits="16" branch="false"/>
<line number="57" hits="16" branch="false"/>
<line number="58" hits="16" branch="false"/>
<line number="59" hits="16" branch="false"/>
<line number="60" hits="16" branch="false"/>
<line number="61" hits="16" branch="false"/>
<line number="63" hits="16" branch="false"/>
<line number="64" hits="16" branch="false"/>
<line number="65" hits="16" branch="false"/>
<line number="68" hits="8" branch="false"/>
<line number="69" hits="8" branch="false"/>
<line number="70" hits="8" branch="false"/>
<line number="74" hits="9" branch="false"/>
<line number="75" hits="9" 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="2" branch="false"/>
<line number="78" hits="7" branch="false"/>
<line number="79" hits="7" branch="false"/>
<line number="83" hits="7" branch="false"/>
<line number="85" hits="7" 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="1" 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="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="89" hits="1" branch="false"/>
<line number="93" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="97" hits="5" branch="false"/>
<line number="102" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="8" branch="false"/>
<line number="106" hits="8" 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="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="116" hits="8" branch="false"/>
<line number="119" hits="8" branch="false"/>
<line number="123" hits="26" branch="false"/>
<line number="127" hits="10" branch="false"/>
<line number="129" 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="130" hits="3" 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="7" 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="1" branch="false"/>
<line number="142" hits="6" branch="false"/>
<line number="144" 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="146" hits="5" branch="false"/>
<line number="147" hits="5" branch="false"/>
<line number="149" hits="5" branch="false"/>
<line number="160" hits="1" branch="false"/>
<line number="161" hits="1" branch="false"/>
<line number="162" hits="1" branch="false"/>
<line number="164" hits="1" branch="false"/>
<line number="169" hits="5" branch="false"/>
<line number="178" hits="3" branch="false"/>
<line number="182" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="186" hits="1" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="194" hits="1" branch="false"/>
<line number="198" hits="1" branch="false"/>
<line number="199" hits="1" 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="21" branch="false"/>
<line number="136" hits="21" branch="false"/>
<line number="137" hits="21" branch="false"/>
<line number="138" hits="21" branch="false"/>
<line number="139" hits="21" branch="false"/>
<line number="140" hits="21" 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="3" branch="false"/>
<line number="151" hits="3" 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="3" branch="false"/>
<line number="155" hits="3" branch="false"/>
</lines>
</method>
<method name="assertHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="424" hits="40" branch="false"/>
<line number="425" hits="40" 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="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="379" hits="20" branch="false"/>
<line number="380" hits="20" branch="false"/>
<line number="381" hits="20" 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="20" branch="false"/>
<line number="347" hits="20" branch="false"/>
<line number="349" 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="352" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="11" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="358" hits="20" branch="false"/>
<line number="359" hits="20" branch="false"/>
<line number="360" hits="20" branch="false"/>
</lines>
</method>
<method name="getHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="40" branch="false"/>
</lines>
</method>
<method name="getHashIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="277" hits="20" 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="1" 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="20" branch="false"/>
<line number="445" hits="20" 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="20" branch="false"/>
<line number="404" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="405" hits="18" branch="false"/>
<line number="408" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="409" hits="1" branch="false"/>
<line number="412" hits="20" branch="false"/>
</lines>
</method>
<method name="isHashSalted" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="238" hits="2" branch="false"/>
</lines>
</method>
<method name="isStoredCredentialsHexEncoded" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="193" hits="11" 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="20" branch="false"/>
<line number="456" hits="20" 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="18" branch="false"/>
<line number="179" hits="18" 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="1" branch="false"/>
<line number="265" hits="1" 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="21" branch="false"/>
<line number="136" hits="21" branch="false"/>
<line number="137" hits="21" branch="false"/>
<line number="138" hits="21" branch="false"/>
<line number="139" hits="21" branch="false"/>
<line number="140" hits="21" branch="false"/>
<line number="150" hits="3" branch="false"/>
<line number="151" hits="3" 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="3" branch="false"/>
<line number="155" hits="3" branch="false"/>
<line number="166" hits="40" branch="false"/>
<line number="178" hits="18" branch="false"/>
<line number="179" hits="18" branch="false"/>
<line number="193" hits="11" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="238" hits="2" branch="false"/>
<line number="264" hits="1" branch="false"/>
<line number="265" hits="1" branch="false"/>
<line number="277" hits="20" 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="1" branch="false"/>
<line number="345" hits="20" branch="false"/>
<line number="347" hits="20" branch="false"/>
<line number="349" 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="352" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="11" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="358" hits="20" branch="false"/>
<line number="359" hits="20" branch="false"/>
<line number="360" hits="20" branch="false"/>
<line number="379" hits="20" branch="false"/>
<line number="380" hits="20" branch="false"/>
<line number="381" hits="20" branch="false"/>
<line number="403" hits="20" branch="false"/>
<line number="404" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="405" hits="18" branch="false"/>
<line number="408" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="409" hits="1" branch="false"/>
<line number="412" hits="20" branch="false"/>
<line number="424" hits="40" branch="false"/>
<line number="425" hits="40" 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="40" branch="false"/>
<line number="444" hits="20" branch="false"/>
<line number="445" hits="20" branch="false"/>
<line number="455" hits="20" branch="false"/>
<line number="456" hits="20" 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="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" 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="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" 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="6" branch="false"/>
<line number="39" hits="6" branch="false"/>
<line number="40" hits="6" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="68" hits="1" 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="5" 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="4" branch="false"/>
<line number="89" hits="1" branch="false"/>
<line number="91" hits="1" 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="6" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="false"/>
<line number="48" hits="5" branch="false"/>
<line number="50" hits="4" 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="52" hits="2" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" 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="6" branch="false"/>
<line number="73" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="77" hits="5" 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="11" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="1" branch="false"/>
<line number="100" hits="5" 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="5" 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="6" branch="false"/>
<line number="109" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="6" branch="false"/>
<line number="39" hits="6" branch="false"/>
<line number="40" hits="6" branch="false"/>
<line number="44" hits="6" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="false"/>
<line number="48" hits="5" branch="false"/>
<line number="50" hits="4" 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="52" hits="2" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
<line number="61" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="72" hits="6" branch="false"/>
<line number="73" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="77" hits="5" branch="false"/>
<line number="81" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="5" 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="4" branch="false"/>
<line number="89" hits="1" branch="false"/>
<line number="91" hits="1" branch="false"/>
<line number="95" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="1" branch="false"/>
<line number="100" hits="5" branch="false"/>
<line number="104" hits="11" branch="false"/>
<line number="108" hits="6" branch="false"/>
<line number="109" hits="6" 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="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" 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="13" branch="false"/>
<line number="38" hits="13" branch="false"/>
<line number="39" hits="13" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="13" branch="false"/>
<line number="38" hits="13" branch="false"/>
<line number="39" hits="13" 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="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" 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="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="39" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.SimpleCredentialsMatcher" filename="org/apache/shiro/authc/credential/SimpleCredentialsMatcher.java" line-rate="0.9375" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="102" 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="12" branch="false"/>
<line number="127" hits="12" branch="false"/>
<line number="128" hits="12" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;Ljava/lang/Object;)Z" line-rate="0.8888888888888888" branch-rate="0.5">
<lines>
<line number="94" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="95" hits="32" branch="false"/>
<line number="99" 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="100" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="32" branch="false"/>
<line number="104" hits="32" branch="false"/>
<line number="105" hits="32" branch="false"/>
<line number="106" hits="32" 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="12" 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="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="102" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="57" hits="12" branch="false"/>
<line number="73" hits="12" branch="false"/>
<line number="94" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="95" hits="32" branch="false"/>
<line number="99" 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="100" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="32" branch="false"/>
<line number="104" hits="32" branch="false"/>
<line number="105" hits="32" branch="false"/>
<line number="106" hits="32" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="126" hits="12" branch="false"/>
<line number="127" hits="12" branch="false"/>
<line number="128" hits="12" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authc.pam" line-rate="0.6355140186915887" 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="47" 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="1" 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="47" branch="false"/>
<line number="40" hits="1" 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.29411764705882354" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="3" 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="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="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.75" branch-rate="0.5">
<lines>
<line number="54" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="1" branch="false"/>
<line number="59" hits="1" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="3" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="54" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="1" branch="false"/>
<line number="59" hits="1" 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="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="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="44" 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="44" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="44" branch="false"/>
<line number="95" hits="44" branch="false"/>
<line number="96" hits="44" branch="false"/>
</lines>
</method>
<method name="assertRealmsConfigured" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="157" hits="27" branch="false"/>
<line number="158" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="159" hits="1" branch="false"/>
<line number="161" hits="1" branch="false"/>
<line number="163" hits="26" 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="27" branch="false"/>
<line number="265" hits="26" branch="false"/>
<line number="266" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="267" hits="24" branch="false"/>
<line number="269" hits="2" 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="2" branch="false"/>
<line number="202" hits="2" branch="false"/>
<line number="204" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="205" hits="2" branch="false"/>
<line number="208" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="4" branch="false"/>
<line number="212" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="4" branch="false"/>
<line number="216" hits="4" branch="false"/>
<line number="217" hits="4" branch="false"/>
<line number="219" hits="4" branch="false"/>
<line number="220" hits="1" branch="false"/>
<line number="221" hits="1" branch="false"/>
<line number="222" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="1" branch="false"/>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="3" branch="false"/>
<line number="228" hits="4" branch="false"/>
<line number="230" hits="4" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="4" branch="false"/>
<line number="235" hits="2" branch="false"/>
<line number="237" hits="2" 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="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="175" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="180" hits="23" branch="false"/>
<line number="181" hits="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="184" hits="1" branch="false"/>
<line number="186" hits="18" 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="4" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="62" 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="9" branch="false"/>
<line number="286" hits="9" branch="false"/>
<line number="287" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="288" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="289" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="9" branch="false"/>
<line number="292" hits="9" branch="false"/>
<line number="294" hits="9" 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="2" branch="false"/>
<line number="144" hits="2" 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="38" branch="false"/>
<line number="109" hits="38" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="1" branch="false"/>
<line number="94" hits="44" branch="false"/>
<line number="95" hits="44" branch="false"/>
<line number="96" hits="44" branch="false"/>
<line number="108" hits="38" branch="false"/>
<line number="109" hits="38" branch="false"/>
<line number="117" hits="62" branch="false"/>
<line number="132" hits="4" branch="false"/>
<line number="143" hits="2" branch="false"/>
<line number="144" hits="2" branch="false"/>
<line number="157" hits="27" branch="false"/>
<line number="158" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="159" hits="1" branch="false"/>
<line number="161" hits="1" branch="false"/>
<line number="163" hits="26" branch="false"/>
<line number="174" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="175" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="180" hits="23" branch="false"/>
<line number="181" hits="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="184" hits="1" branch="false"/>
<line number="186" hits="18" branch="false"/>
<line number="200" hits="2" branch="false"/>
<line number="202" hits="2" branch="false"/>
<line number="204" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="205" hits="2" branch="false"/>
<line number="208" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="4" branch="false"/>
<line number="212" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="4" branch="false"/>
<line number="216" hits="4" branch="false"/>
<line number="217" hits="4" branch="false"/>
<line number="219" hits="4" branch="false"/>
<line number="220" hits="1" branch="false"/>
<line number="221" hits="1" branch="false"/>
<line number="222" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="1" branch="false"/>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="3" branch="false"/>
<line number="228" hits="4" branch="false"/>
<line number="230" hits="4" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="4" branch="false"/>
<line number="235" hits="2" branch="false"/>
<line number="237" hits="2" branch="false"/>
<line number="264" hits="27" branch="false"/>
<line number="265" hits="26" branch="false"/>
<line number="266" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="267" hits="24" branch="false"/>
<line number="269" hits="2" branch="false"/>
<line number="285" hits="9" branch="false"/>
<line number="286" hits="9" branch="false"/>
<line number="287" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="288" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="289" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="9" branch="false"/>
<line number="292" hits="9" branch="false"/>
<line number="294" hits="9" 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="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="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="2" branch="false"/>
<line number="48" hits="2" 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="4" branch="false"/>
<line number="37" 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="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="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="4" branch="false"/>
<line number="65" 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="54" hits="4" branch="false"/>
<line number="55" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="4" branch="false"/>
<line number="37" hits="4" branch="false"/>
<line number="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="64" hits="4" branch="false"/>
<line number="65" hits="4" 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="1" branch="false"/>
<line number="37" hits="1" 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="1" branch="false"/>
<line number="46" hits="1" 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="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
<line number="55" hits="1" 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="1" branch="false"/>
<line number="37" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" 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="37" branch="false"/>
<line number="61" hits="37" 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="34" branch="false"/>
<line number="135" hits="34" branch="false"/>
<line number="136" hits="34" 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="34" branch="false"/>
</lines>
</method>
<method name="applyRolePermissionResolverToRealms" signature="()V" line-rate="1.0" branch-rate="0.7">
<lines>
<line number="187" hits="35" branch="false"/>
<line number="188" hits="35" branch="false"/>
<line number="189" hits="35" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="192" hits="5" branch="false"/>
<line number="194" hits="5" branch="false"/>
<line number="196" hits="35" branch="false"/>
</lines>
</method>
<method name="assertRealmsConfigured" signature="()V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="206" hits="23" branch="false"/>
<line number="207" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="23" 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="34" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="115" 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="35" 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="21" branch="false"/>
<line number="372" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="375" hits="10" branch="false"/>
<line number="377" hits="11" branch="false"/>
<line number="378" hits="11" 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="2" branch="false"/>
<line number="221" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="1" branch="false"/>
<line number="227" hits="1" 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="34" branch="false"/>
<line number="89" hits="34" branch="false"/>
<line number="90" hits="34" branch="false"/>
<line number="91" hits="34" 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="1" branch="false"/>
<line number="170" hits="1" branch="false"/>
<line number="171" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="37" branch="false"/>
<line number="61" hits="37" 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="115" branch="false"/>
<line number="88" hits="34" branch="false"/>
<line number="89" hits="34" branch="false"/>
<line number="90" hits="34" branch="false"/>
<line number="91" hits="34" branch="false"/>
<line number="102" hits="34" 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="34" branch="false"/>
<line number="135" hits="34" branch="false"/>
<line number="136" hits="34" 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="34" branch="false"/>
<line number="154" hits="35" branch="false"/>
<line number="169" hits="1" branch="false"/>
<line number="170" hits="1" branch="false"/>
<line number="171" hits="1" branch="false"/>
<line number="187" hits="35" branch="false"/>
<line number="188" hits="35" branch="false"/>
<line number="189" hits="35" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="192" hits="5" branch="false"/>
<line number="194" hits="5" branch="false"/>
<line number="196" hits="35" branch="false"/>
<line number="206" hits="23" branch="false"/>
<line number="207" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="23" branch="false"/>
<line number="220" hits="2" branch="false"/>
<line number="221" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="1" branch="false"/>
<line number="227" hits="1" 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="21" branch="false"/>
<line number="372" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="375" hits="10" branch="false"/>
<line number="377" hits="11" branch="false"/>
<line number="378" hits="11" 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="40" branch="false"/>
<line number="53" hits="40" 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="13" branch="false"/>
<line number="60" hits="13" branch="false"/>
<line number="61" hits="13" 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="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="14" branch="false"/>
<line number="175" hits="24" branch="false"/>
<line number="176" hits="24" 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="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="26" branch="false"/>
<line number="84" hits="38" branch="false"/>
<line number="85" hits="38" 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="12" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="32" hits="32" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="74" 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="12" 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="11" branch="false"/>
<line number="73" hits="11" 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="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="32" branch="false"/>
<line number="52" hits="40" branch="false"/>
<line number="53" hits="40" branch="false"/>
<line number="59" hits="13" branch="false"/>
<line number="60" hits="13" branch="false"/>
<line number="61" hits="13" branch="false"/>
<line number="64" hits="74" branch="false"/>
<line number="72" hits="11" branch="false"/>
<line number="73" hits="11" branch="false"/>
<line number="81" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="26" branch="false"/>
<line number="84" hits="38" branch="false"/>
<line number="85" hits="38" 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="12" branch="false"/>
<line number="111" hits="4" branch="false"/>
<line number="112" hits="4" 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="12" 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="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="14" branch="false"/>
<line number="175" hits="24" branch="false"/>
<line number="176" hits="24" 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="17" branch="false"/>
<line number="41" hits="17" branch="false"/>
<line number="42" hits="17" 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="17" 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="17" branch="false"/>
</lines>
</method>
<method name="getPermissions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="24" 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="17" branch="false"/>
<line number="55" hits="17" 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="17" branch="false"/>
<line number="63" hits="17" 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="17" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="40" hits="17" branch="false"/>
<line number="41" hits="17" branch="false"/>
<line number="42" hits="17" 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="17" branch="false"/>
<line number="54" hits="17" branch="false"/>
<line number="55" hits="17" branch="false"/>
<line number="58" hits="24" branch="false"/>
<line number="62" hits="17" branch="false"/>
<line number="63" hits="17" 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="1" branch="false"/>
<line number="38" hits="1" 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="5" branch="false"/>
<line number="47" hits="5" 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="1" branch="false"/>
<line number="66" hits="1" 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="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" 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="2" branch="false"/>
<line number="33" 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="41" hits="8" branch="false"/>
<line number="42" hits="8" 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="2" branch="false"/>
<line number="61" 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="50" hits="2" branch="false"/>
<line number="51" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="2" branch="false"/>
<line number="33" hits="2" branch="false"/>
<line number="41" hits="8" branch="false"/>
<line number="42" hits="8" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="51" hits="2" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="2" 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="4" branch="false"/>
<line number="28" hits="1" 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="4" branch="false"/>
<line number="28" hits="1" 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="5" branch="false"/>
<line number="42" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="5" branch="false"/>
<line number="42" hits="5" 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="2" branch="false"/>
<line number="44" hits="2" 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="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="false"/>
<line number="71" hits="2" branch="false"/>
<line number="73" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="1" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="1" 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="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="54" 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="69" hits="2" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="71" hits="2" branch="false"/>
<line number="73" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="1" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="1" 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="3" branch="false"/>
<line number="42" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="56" hits="3" branch="false"/>
<line number="57" hits="3" branch="false"/>
<line number="59" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="60" hits="1" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="70" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="74" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="3" branch="false"/>
<line number="42" hits="3" branch="false"/>
<line number="54" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="56" hits="3" branch="false"/>
<line number="57" hits="3" branch="false"/>
<line number="59" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="60" hits="1" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="70" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="74" hits="1" 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="3" 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="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="3" branch="false"/>
<line number="45" hits="2" 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="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="47" hits="1" 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="2" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="51" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" 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="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
<line number="58" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="60" hits="2" 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="4" 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="4" branch="false"/>
<line number="73" hits="4" 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="4" branch="false"/>
<line number="80" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="2" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="84" hits="4" branch="false"/>
</lines>
</method>
<method name="getActions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="118" hits="5" branch="false"/>
</lines>
</method>
<method name="getDomain" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="5" 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="6" branch="false"/>
<line number="98" hits="6" branch="false"/>
<line number="99" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="6" branch="false"/>
<line number="102" hits="6" branch="false"/>
</lines>
</method>
<method name="getTargets" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="130" hits="5" 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="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="51" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
<line number="58" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="60" hits="2" 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="4" 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="4" branch="false"/>
<line number="73" hits="4" 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="4" branch="false"/>
<line number="80" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="2" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="84" hits="4" 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="6" branch="false"/>
<line number="98" hits="6" branch="false"/>
<line number="99" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="6" branch="false"/>
<line number="102" hits="6" branch="false"/>
<line number="106" hits="5" 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="5" 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="5" 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="5" branch="false"/>
<line number="136" hits="5" 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="104" branch="false"/>
<line number="140" hits="100" 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="110" branch="false"/>
<line number="143" hits="110" branch="false"/>
<line number="144" hits="106" 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="460" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="251" hits="129" 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="81" 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="81" branch="false"/>
<line number="203" hits="81" branch="false"/>
<line number="205" hits="81" branch="false"/>
<line number="206" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="152" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="11" branch="false"/>
<line number="212" hits="141" branch="false"/>
<line number="213" hits="141" 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="21" branch="false"/>
<line number="216" hits="120" branch="false"/>
<line number="218" hits="120" branch="false"/>
<line number="221" hits="77" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="18" branch="false"/>
<line number="223" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="4" branch="false"/>
<line number="228" hits="45" 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="198" branch="false"/>
<line number="178" hits="198" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="231" branch="false"/>
<line number="180" hits="231" branch="false"/>
<line number="181" hits="198" 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="5" branch="false"/>
<line number="148" hits="5" 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="115" branch="false"/>
<line number="153" hits="115" 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="3" branch="false"/>
<line number="157" hits="112" branch="false"/>
<line number="159" hits="112" branch="false"/>
<line number="160" hits="112" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="198" branch="false"/>
<line number="162" hits="198" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="198" branch="false"/>
<line number="165" hits="198" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="166" hits="1" branch="false"/>
<line number="168" hits="197" branch="false"/>
<line number="169" hits="197" branch="false"/>
<line number="171" hits="111" 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="111" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.8571428571428571" branch-rate="0.75">
<lines>
<line number="232" hits="4" branch="false"/>
<line number="233" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="234" hits="4" 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="4" branch="false"/>
<line number="238" hits="4" branch="false"/>
<line number="239" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="135" hits="5" branch="false"/>
<line number="136" hits="5" branch="false"/>
<line number="139" hits="104" branch="false"/>
<line number="140" hits="100" branch="false"/>
<line number="142" hits="110" branch="false"/>
<line number="143" hits="110" branch="false"/>
<line number="144" hits="106" branch="false"/>
<line number="147" hits="5" branch="false"/>
<line number="148" hits="5" branch="false"/>
<line number="151" hits="115" branch="false"/>
<line number="153" hits="115" 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="3" branch="false"/>
<line number="157" hits="112" branch="false"/>
<line number="159" hits="112" branch="false"/>
<line number="160" hits="112" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="198" branch="false"/>
<line number="162" hits="198" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="198" branch="false"/>
<line number="165" hits="198" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="166" hits="1" branch="false"/>
<line number="168" hits="197" branch="false"/>
<line number="169" hits="197" branch="false"/>
<line number="171" hits="111" 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="111" branch="false"/>
<line number="177" hits="198" branch="false"/>
<line number="178" hits="198" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="231" branch="false"/>
<line number="180" hits="231" branch="false"/>
<line number="181" hits="198" branch="false"/>
<line number="188" hits="460" branch="false"/>
<line number="197" hits="81" 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="81" branch="false"/>
<line number="203" hits="81" branch="false"/>
<line number="205" hits="81" branch="false"/>
<line number="206" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="152" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="11" branch="false"/>
<line number="212" hits="141" branch="false"/>
<line number="213" hits="141" 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="21" branch="false"/>
<line number="216" hits="120" branch="false"/>
<line number="218" hits="120" branch="false"/>
<line number="221" hits="77" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="18" branch="false"/>
<line number="223" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="4" branch="false"/>
<line number="228" hits="45" branch="false"/>
<line number="232" hits="4" branch="false"/>
<line number="233" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="234" hits="4" 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="4" branch="false"/>
<line number="238" hits="4" branch="false"/>
<line number="239" hits="4" 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="129" 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="68" 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="43" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="68" branch="false"/>
<line number="41" hits="43" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.cache" line-rate="0.41935483870967744" 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.5517241379310345" 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="3" branch="false"/>
<line number="47" hits="3" branch="false"/>
<line number="48" hits="3" 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="2" 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="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="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="76" hits="2" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.5454545454545454" branch-rate="0.25">
<lines>
<line number="104" hits="3" branch="false"/>
<line number="105" hits="3" branch="false"/>
<line number="109" hits="3" branch="false"/>
<line number="110" hits="3" 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="3" branch="false"/>
<line number="118" hits="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="3" branch="false"/>
<line number="47" hits="3" branch="false"/>
<line number="48" hits="3" branch="false"/>
<line number="60" hits="2" 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="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="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="76" hits="2" 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="3" branch="false"/>
<line number="105" hits="3" branch="false"/>
<line number="109" hits="3" branch="false"/>
<line number="110" hits="3" 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="3" branch="false"/>
<line number="118" hits="3" 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.34782608695652173" 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="2" branch="false"/>
<line number="47" hits="2" 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="2" 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="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" 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="6" 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="6" 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"/>
</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="2" branch="false"/>
<line number="47" hits="2" 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="2" 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="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="6" branch="false"/>
<line number="62" hits="6" 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"/>
</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="1" 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="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.codec" line-rate="0.6360544217687075" 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.7612903225806451" 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="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="117" hits="1" branch="false"/>
<line number="122" hits="256" branch="false"/>
<line number="123" hits="255" branch="false"/>
<line number="125" hits="27" branch="false"/>
<line number="126" hits="26" branch="false"/>
<line number="128" hits="27" branch="false"/>
<line number="129" hits="26" branch="false"/>
<line number="131" hits="11" branch="false"/>
<line number="132" hits="10" branch="false"/>
<line number="135" hits="1" branch="false"/>
<line number="136" hits="1" branch="false"/>
<line number="138" hits="27" branch="false"/>
<line number="139" hits="26" branch="false"/>
<line number="142" hits="27" branch="false"/>
<line number="143" hits="26" branch="false"/>
<line number="146" hits="11" branch="false"/>
<line number="147" hits="10" branch="false"/>
<line number="150" hits="1" branch="false"/>
<line number="151" hits="1" branch="false"/>
<line number="152" hits="1" 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="16" branch="false"/>
<line number="414" hits="16" branch="false"/>
</lines>
</method>
<method name="decode" signature="([B)[B" line-rate="0.9310344827586207" branch-rate="0.8571428571428571">
<lines>
<line number="425" hits="16" branch="false"/>
<line number="428" hits="16" 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="16" branch="false"/>
<line number="438" hits="16" branch="false"/>
<line number="442" hits="16" branch="false"/>
<line number="444" hits="41" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="445" hits="25" 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="16" branch="false"/>
<line number="452" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="146" branch="false"/>
<line number="454" hits="146" branch="false"/>
<line number="455" hits="146" branch="false"/>
<line number="457" hits="146" branch="false"/>
<line number="458" hits="146" branch="false"/>
<line number="460" hits="146" 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="132" branch="false"/>
<line number="463" hits="132" branch="false"/>
<line number="465" hits="132" branch="false"/>
<line number="466" hits="132" branch="false"/>
<line number="467" hits="132" branch="false"/>
<line number="468" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="470" hits="11" branch="false"/>
<line number="473" hits="3" branch="false"/>
<line number="474" hits="3" branch="false"/>
<line number="475" hits="3" branch="false"/>
<line number="477" hits="146" branch="false"/>
<line number="479" hits="16" 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="16" branch="false"/>
<line number="491" hits="16" branch="false"/>
<line number="493" hits="606" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="590" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="590" branch="false"/>
<line number="499" hits="16" branch="false"/>
<line number="501" hits="16" branch="false"/>
<line number="503" hits="16" 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="22" branch="false"/>
</lines>
</method>
<method name="encode" signature="([BZ)[B" line-rate="0.8253968253968254" branch-rate="0.6470588235294118">
<lines>
<line number="266" hits="22" branch="false"/>
<line number="267" hits="22" branch="false"/>
<line number="268" hits="22" branch="false"/>
<line number="269" hits="22" branch="false"/>
<line number="271" hits="22" branch="false"/>
<line number="273" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="22" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="284" hits="22" 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="288" hits="0" branch="false"/>
<line number="291" hits="22" 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="22" branch="false"/>
<line number="296" hits="22" 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="307" hits="234" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="308" hits="212" branch="false"/>
<line number="309" hits="212" branch="false"/>
<line number="310" hits="212" branch="false"/>
<line number="311" hits="212" branch="false"/>
<line number="315" hits="212" branch="false"/>
<line number="316" hits="212" branch="false"/>
<line number="318" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="322" hits="212" branch="false"/>
<line number="326" hits="212" branch="false"/>
<line number="327" hits="212" branch="false"/>
<line number="328" hits="212" branch="false"/>
<line number="330" hits="212" branch="false"/>
<line number="333" hits="212" 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="22" branch="false"/>
<line number="347" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="348" hits="15" branch="false"/>
<line number="349" hits="15" branch="false"/>
<line number="352" hits="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="353" hits="15" branch="false"/>
<line number="354" hits="15" branch="false"/>
<line number="355" hits="15" branch="false"/>
<line number="356" hits="15" branch="false"/>
<line number="357" hits="15" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="7" branch="false"/>
<line number="360" hits="7" branch="false"/>
<line number="361" hits="7" branch="false"/>
<line number="362" hits="7" branch="false"/>
<line number="364" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="367" hits="7" branch="false"/>
<line number="368" hits="7" branch="false"/>
<line number="369" hits="7" branch="false"/>
<line number="370" hits="7" branch="false"/>
<line number="373" hits="22" 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="22" 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="22" branch="false"/>
<line number="234" hits="22" branch="false"/>
</lines>
</method>
<method name="isBase64" signature="(B)Z" line-rate="0.8" branch-rate="0.6666666666666666">
<lines>
<line number="161" hits="590" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="25" branch="false"/>
<line number="164" hits="565" 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="565" 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="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="117" hits="1" branch="false"/>
<line number="122" hits="256" branch="false"/>
<line number="123" hits="255" branch="false"/>
<line number="125" hits="27" branch="false"/>
<line number="126" hits="26" branch="false"/>
<line number="128" hits="27" branch="false"/>
<line number="129" hits="26" branch="false"/>
<line number="131" hits="11" branch="false"/>
<line number="132" hits="10" branch="false"/>
<line number="135" hits="1" branch="false"/>
<line number="136" hits="1" branch="false"/>
<line number="138" hits="27" branch="false"/>
<line number="139" hits="26" branch="false"/>
<line number="142" hits="27" branch="false"/>
<line number="143" hits="26" branch="false"/>
<line number="146" hits="11" branch="false"/>
<line number="147" hits="10" branch="false"/>
<line number="150" hits="1" branch="false"/>
<line number="151" hits="1" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="161" hits="590" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="25" branch="false"/>
<line number="164" hits="565" 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="565" 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="22" branch="false"/>
<line number="234" hits="22" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="254" hits="22" branch="false"/>
<line number="266" hits="22" branch="false"/>
<line number="267" hits="22" branch="false"/>
<line number="268" hits="22" branch="false"/>
<line number="269" hits="22" branch="false"/>
<line number="271" hits="22" branch="false"/>
<line number="273" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="22" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="284" hits="22" 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="288" hits="0" branch="false"/>
<line number="291" hits="22" 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="22" branch="false"/>
<line number="296" hits="22" 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="307" hits="234" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="308" hits="212" branch="false"/>
<line number="309" hits="212" branch="false"/>
<line number="310" hits="212" branch="false"/>
<line number="311" hits="212" branch="false"/>
<line number="315" hits="212" branch="false"/>
<line number="316" hits="212" branch="false"/>
<line number="318" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="322" hits="212" branch="false"/>
<line number="326" hits="212" branch="false"/>
<line number="327" hits="212" branch="false"/>
<line number="328" hits="212" branch="false"/>
<line number="330" hits="212" branch="false"/>
<line number="333" hits="212" 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="22" branch="false"/>
<line number="347" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="348" hits="15" branch="false"/>
<line number="349" hits="15" branch="false"/>
<line number="352" hits="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="353" hits="15" branch="false"/>
<line number="354" hits="15" branch="false"/>
<line number="355" hits="15" branch="false"/>
<line number="356" hits="15" branch="false"/>
<line number="357" hits="15" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="7" branch="false"/>
<line number="360" hits="7" branch="false"/>
<line number="361" hits="7" branch="false"/>
<line number="362" hits="7" branch="false"/>
<line number="364" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="367" hits="7" branch="false"/>
<line number="368" hits="7" branch="false"/>
<line number="369" hits="7" branch="false"/>
<line number="370" hits="7" branch="false"/>
<line number="373" hits="22" 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="22" 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="16" branch="false"/>
<line number="414" hits="16" branch="false"/>
<line number="425" hits="16" branch="false"/>
<line number="428" hits="16" 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="16" branch="false"/>
<line number="438" hits="16" branch="false"/>
<line number="442" hits="16" branch="false"/>
<line number="444" hits="41" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="445" hits="25" 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="16" branch="false"/>
<line number="452" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="146" branch="false"/>
<line number="454" hits="146" branch="false"/>
<line number="455" hits="146" branch="false"/>
<line number="457" hits="146" branch="false"/>
<line number="458" hits="146" branch="false"/>
<line number="460" hits="146" 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="132" branch="false"/>
<line number="463" hits="132" branch="false"/>
<line number="465" hits="132" branch="false"/>
<line number="466" hits="132" branch="false"/>
<line number="467" hits="132" branch="false"/>
<line number="468" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="470" hits="11" branch="false"/>
<line number="473" hits="3" branch="false"/>
<line number="474" hits="3" branch="false"/>
<line number="475" hits="3" branch="false"/>
<line number="477" hits="146" branch="false"/>
<line number="479" hits="16" branch="false"/>
<line number="490" hits="16" branch="false"/>
<line number="491" hits="16" branch="false"/>
<line number="493" hits="606" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="590" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="590" branch="false"/>
<line number="499" hits="16" branch="false"/>
<line number="501" hits="16" branch="false"/>
<line number="503" hits="16" 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.23529411764705882" 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="237" 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="64" 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="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="140" 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="140" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="8" branch="false"/>
<line number="201" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="202" hits="41" branch="false"/>
<line number="203" hits="91" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="39" branch="false"/>
<line number="205" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="52" 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="118" 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="157" 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="39" 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="35" 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="35" 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="237" branch="false"/>
<line number="49" hits="39" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="78" hits="118" branch="false"/>
<line number="92" hits="157" 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="35" branch="false"/>
<line number="124" hits="35" 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="64" 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="140" 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="140" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="8" branch="false"/>
<line number="201" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="202" hits="41" branch="false"/>
<line number="203" hits="91" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="39" branch="false"/>
<line number="205" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="52" 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="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="1" 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="8" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="8" branch="false"/>
<line number="86" hits="8" 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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="97" hits="8" branch="false"/>
<line number="98" hits="8" branch="false"/>
<line number="100" hits="2" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="1" branch="false"/>
<line number="113" hits="1" branch="false"/>
<line number="114" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="116" hits="1" branch="false"/>
<line number="118" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="2" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="122" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="toInt" signature="([BII)I" line-rate="0.8" branch-rate="0.7">
<lines>
<line number="57" 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="58" hits="0" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="4" branch="false"/>
<line number="63" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="switch" coverage="75%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="69" hits="2" branch="false"/>
</lines>
</method>
<method name="toShort" signature="(B)S" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="0" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="53" hits="6" branch="false"/>
<line number="57" 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="58" hits="0" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="4" branch="false"/>
<line number="63" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="switch" coverage="75%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="69" hits="2" branch="false"/>
<line number="82" hits="8" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="8" branch="false"/>
<line number="86" hits="8" branch="false"/>
<line number="96" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="97" hits="8" branch="false"/>
<line number="98" hits="8" branch="false"/>
<line number="100" hits="2" branch="false"/>
<line number="109" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="1" branch="false"/>
<line number="113" hits="1" branch="false"/>
<line number="114" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="116" hits="1" branch="false"/>
<line number="118" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="2" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="122" hits="1" 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="1" 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="1" 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="12" branch="false"/>
</lines>
</method>
<method name="decode" signature="([B)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="11" branch="false"/>
<line number="95" hits="11" branch="false"/>
</lines>
</method>
<method name="decode" signature="([C)[B" line-rate="0.9090909090909091" branch-rate="0.75">
<lines>
<line number="125" hits="12" branch="false"/>
<line number="127" hits="12" 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="12" branch="false"/>
<line number="134" hits="377" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="365" branch="false"/>
<line number="136" hits="365" branch="false"/>
<line number="137" hits="365" branch="false"/>
<line number="138" hits="365" branch="false"/>
<line number="139" hits="365" branch="false"/>
<line number="142" hits="12" branch="false"/>
</lines>
</method>
<method name="encode" signature="([B)[C" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="17" branch="false"/>
<line number="68" hits="17" branch="false"/>
<line number="71" hits="530" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="72" hits="513" branch="false"/>
<line number="73" hits="513" branch="false"/>
<line number="76" hits="17" 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="17" branch="false"/>
<line number="53" hits="17" branch="false"/>
</lines>
</method>
<method name="toDigit" signature="(CI)I" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="154" hits="730" branch="false"/>
<line number="155" hits="730" 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="730" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="39" hits="1" branch="false"/>
<line number="52" hits="17" branch="false"/>
<line number="53" hits="17" branch="false"/>
<line number="66" hits="17" branch="false"/>
<line number="68" hits="17" branch="false"/>
<line number="71" hits="530" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="72" hits="513" branch="false"/>
<line number="73" hits="513" branch="false"/>
<line number="76" hits="17" branch="false"/>
<line number="94" hits="11" branch="false"/>
<line number="95" hits="11" branch="false"/>
<line number="107" hits="12" branch="false"/>
<line number="125" hits="12" branch="false"/>
<line number="127" hits="12" 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="12" branch="false"/>
<line number="134" hits="377" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="365" branch="false"/>
<line number="136" hits="365" branch="false"/>
<line number="137" hits="365" branch="false"/>
<line number="138" hits="365" branch="false"/>
<line number="139" hits="365" branch="false"/>
<line number="142" hits="12" branch="false"/>
<line number="154" hits="730" branch="false"/>
<line number="155" hits="730" 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="730" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.concurrent" line-rate="0.27058823529411763" 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="1" branch="false"/>
<line number="64" hits="1" 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="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="71" hits="1" 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="2" branch="false"/>
<line number="117" hits="2" 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="1" branch="false"/>
<line number="129" hits="1" branch="false"/>
<line number="130" hits="1" 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="2" 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="1" 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="1" branch="false"/>
<line number="90" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="63" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="71" hits="1" branch="false"/>
<line number="79" hits="1" branch="false"/>
<line number="89" hits="1" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="101" hits="2" branch="false"/>
<line number="116" hits="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="128" hits="1" branch="false"/>
<line number="129" hits="1" branch="false"/>
<line number="130" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.concurrent.SubjectAwareExecutorService" filename="org/apache/shiro/concurrent/SubjectAwareExecutorService.java" line-rate="0.19047619047619047" 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="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" 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="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="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="76" hits="1" 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="1" branch="false"/>
<line number="125" hits="1" 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="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="74" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="76" hits="1" 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="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="1" branch="false"/>
<line number="125" hits="1" 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="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="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="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="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.7492063492063492" 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="1" branch="false"/>
<line number="46" hits="1" 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="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="39" branch="false"/>
<line number="59" hits="39" branch="false"/>
<line number="60" hits="39" 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="35" 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="30" branch="false"/>
<line number="138" hits="30" branch="false"/>
<line number="139" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="30" branch="false"/>
<line number="141" hits="30" branch="false"/>
<line number="143" hits="30" 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="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="13" branch="false"/>
<line number="300" hits="13" branch="false"/>
<line number="301" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="13" branch="false"/>
<line number="303" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="13" branch="false"/>
<line number="308" hits="20" 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="283" branch="false"/>
<line number="159" hits="283" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="4" branch="false"/>
<line number="161" hits="4" branch="false"/>
<line number="163" hits="283" 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="4" 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="4" branch="false"/>
<line number="225" hits="4" branch="false"/>
<line number="226" hits="4" 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="189" branch="false"/>
<line number="127" hits="189" 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="38" branch="false"/>
<line number="361" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="362" hits="11" branch="false"/>
<line number="364" hits="27" 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="6" 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="124" branch="false"/>
<line number="87" hits="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="122" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="122" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="122" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="2" 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="38" branch="false"/>
<line number="356" hits="38" 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="4" 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="4" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="275" hits="4" branch="false"/>
<line number="276" hits="4" 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="4" branch="false"/>
<line number="287" hits="4" branch="false"/>
<line number="289" hits="0" branch="false"/>
<line number="290" hits="4" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="4" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="295" hits="4" 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="4" branch="false"/>
<line number="255" hits="4" 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="9" branch="false"/>
<line number="319" hits="9" branch="false"/>
<line number="321" hits="146" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="137" branch="false"/>
<line number="324" hits="137" branch="false"/>
<line number="326" hits="137" 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="2" branch="false"/>
<line number="331" hits="38" branch="false"/>
<line number="332" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="334" hits="11" branch="false"/>
<line number="337" hits="11" branch="false"/>
<line number="339" hits="11" branch="false"/>
<line number="341" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="342" hits="11" branch="false"/>
<line number="346" hits="27" branch="false"/>
<line number="348" hits="38" branch="false"/>
<line number="351" hits="9" branch="false"/>
<line number="352" hits="9" 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="4" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="false"/>
<line number="245" hits="4" 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="53" branch="false"/>
<line number="177" hits="53" branch="false"/>
<line number="178" hits="53" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="20" branch="false"/>
<line number="181" hits="53" branch="false"/>
<line number="182" hits="53" 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="21" 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="21" branch="false"/>
<line number="385" hits="21" branch="false"/>
<line number="386" hits="21" 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="5" branch="false"/>
<line number="390" hits="26" branch="false"/>
<line number="391" hits="26" branch="false"/>
<line number="392" hits="26" branch="false"/>
<line number="393" hits="21" 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="35" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="58" hits="39" branch="false"/>
<line number="59" hits="39" branch="false"/>
<line number="60" hits="39" 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="124" branch="false"/>
<line number="87" hits="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="122" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="122" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="122" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="116" hits="6" branch="false"/>
<line number="126" hits="189" branch="false"/>
<line number="127" hits="189" branch="false"/>
<line number="137" hits="30" branch="false"/>
<line number="138" hits="30" branch="false"/>
<line number="139" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="30" branch="false"/>
<line number="141" hits="30" branch="false"/>
<line number="143" hits="30" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="158" hits="283" branch="false"/>
<line number="159" hits="283" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="4" branch="false"/>
<line number="161" hits="4" branch="false"/>
<line number="163" hits="283" branch="false"/>
<line number="176" hits="53" branch="false"/>
<line number="177" hits="53" branch="false"/>
<line number="178" hits="53" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="20" branch="false"/>
<line number="181" hits="53" branch="false"/>
<line number="182" hits="53" 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="4" 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="4" branch="false"/>
<line number="225" hits="4" branch="false"/>
<line number="226" hits="4" branch="false"/>
<line number="240" hits="4" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="false"/>
<line number="245" hits="4" branch="false"/>
<line number="254" hits="4" branch="false"/>
<line number="255" hits="4" branch="false"/>
<line number="266" hits="4" 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="4" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="275" hits="4" branch="false"/>
<line number="276" hits="4" branch="false"/>
<line number="285" hits="4" branch="false"/>
<line number="287" hits="4" branch="false"/>
<line number="289" hits="0" branch="false"/>
<line number="290" hits="4" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="4" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="295" hits="4" branch="false"/>
<line number="298" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="13" branch="false"/>
<line number="300" hits="13" branch="false"/>
<line number="301" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="13" branch="false"/>
<line number="303" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="13" branch="false"/>
<line number="308" hits="20" branch="false"/>
<line number="318" hits="9" branch="false"/>
<line number="319" hits="9" branch="false"/>
<line number="321" hits="146" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="137" branch="false"/>
<line number="324" hits="137" branch="false"/>
<line number="326" hits="137" 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="2" branch="false"/>
<line number="331" hits="38" branch="false"/>
<line number="332" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="334" hits="11" branch="false"/>
<line number="337" hits="11" branch="false"/>
<line number="339" hits="11" branch="false"/>
<line number="341" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="342" hits="11" branch="false"/>
<line number="346" hits="27" branch="false"/>
<line number="348" hits="38" branch="false"/>
<line number="351" hits="9" branch="false"/>
<line number="352" hits="9" branch="false"/>
<line number="355" hits="38" branch="false"/>
<line number="356" hits="38" 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="38" branch="false"/>
<line number="361" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="362" hits="11" branch="false"/>
<line number="364" hits="27" 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="21" 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="21" branch="false"/>
<line number="385" hits="21" branch="false"/>
<line number="386" hits="21" 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="5" branch="false"/>
<line number="390" hits="26" branch="false"/>
<line number="391" hits="26" branch="false"/>
<line number="392" hits="26" branch="false"/>
<line number="393" hits="21" 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="30" branch="false"/>
<line number="450" hits="30" 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="30" branch="false"/>
<line number="454" hits="30" branch="false"/>
<line number="455" hits="30" 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="13" branch="false"/>
<line number="458" hits="13" 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="13" branch="false"/>
<line number="463" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="13" branch="false"/>
<line number="466" hits="0" branch="false"/>
<line number="468" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="13" branch="false"/>
<line number="471" hits="0" branch="false"/>
<line number="473" hits="13" 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="71" 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="18" 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="35" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="575" hits="28" 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="97" 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="31" 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="31" branch="false"/>
<line number="489" hits="31" branch="false"/>
<line number="490" hits="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="492" hits="7" branch="false"/>
<line number="497" hits="31" 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="225" branch="false"/>
</lines>
</method>
<method name="isKeyValueSeparatorChar" signature="(C)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="501" hits="627" 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="23" 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="73" 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="2" 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="36" branch="false"/>
<line number="511" hits="36" 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="36" branch="false"/>
<line number="515" hits="36" branch="false"/>
<line number="517" hits="36" branch="false"/>
<line number="519" hits="1040" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="1004" branch="false"/>
<line number="522" hits="1004" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="523" hits="530" 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="35" branch="false"/>
<line number="526" hits="495" branch="false"/>
<line number="529" hits="474" 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="412" branch="false"/>
<line number="537" hits="36" branch="false"/>
<line number="538" hits="36" branch="false"/>
<line number="540" hits="36" 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="1" branch="false"/>
<line number="542" hits="1" branch="false"/>
<line number="545" hits="35" branch="false"/>
<line number="547" hits="35" 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="13" branch="false"/>
<line number="553" hits="13" branch="false"/>
<line number="554" hits="13" branch="false"/>
<line number="555" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="556" hits="27" branch="false"/>
<line number="557" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="559" hits="1" branch="false"/>
<line number="560" hits="1" branch="false"/>
<line number="561" hits="1" branch="false"/>
<line number="563" hits="26" branch="false"/>
<line number="565" hits="26" branch="false"/>
<line number="566" hits="26" branch="false"/>
<line number="567" hits="26" branch="false"/>
<line number="568" hits="26" branch="false"/>
<line number="569" hits="26" branch="false"/>
<line number="571" hits="13" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="627" hits="26" branch="false"/>
<line number="628" hits="26" 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="26" 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="71" branch="false"/>
<line number="449" hits="30" branch="false"/>
<line number="450" hits="30" 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="30" branch="false"/>
<line number="454" hits="30" branch="false"/>
<line number="455" hits="30" branch="false"/>
<line number="457" hits="13" branch="false"/>
<line number="458" hits="13" 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="13" branch="false"/>
<line number="463" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="13" branch="false"/>
<line number="466" hits="0" branch="false"/>
<line number="468" hits="13" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="13" branch="false"/>
<line number="471" hits="0" branch="false"/>
<line number="473" hits="13" 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="31" 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="31" branch="false"/>
<line number="489" hits="31" branch="false"/>
<line number="490" hits="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="492" hits="7" branch="false"/>
<line number="497" hits="31" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="501" hits="627" 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="97" 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="36" branch="false"/>
<line number="511" hits="36" 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="36" branch="false"/>
<line number="515" hits="36" branch="false"/>
<line number="517" hits="36" branch="false"/>
<line number="519" hits="1040" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="1004" branch="false"/>
<line number="522" hits="1004" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="523" hits="530" 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="35" branch="false"/>
<line number="526" hits="495" branch="false"/>
<line number="529" hits="474" 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="412" branch="false"/>
<line number="537" hits="36" branch="false"/>
<line number="538" hits="36" branch="false"/>
<line number="540" hits="36" 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="1" branch="false"/>
<line number="542" hits="1" branch="false"/>
<line number="545" hits="35" branch="false"/>
<line number="547" hits="35" branch="false"/>
<line number="551" hits="13" branch="false"/>
<line number="553" hits="13" branch="false"/>
<line number="554" hits="13" branch="false"/>
<line number="555" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="556" hits="27" branch="false"/>
<line number="557" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="559" hits="1" branch="false"/>
<line number="560" hits="1" branch="false"/>
<line number="561" hits="1" branch="false"/>
<line number="563" hits="26" branch="false"/>
<line number="565" hits="26" branch="false"/>
<line number="566" hits="26" branch="false"/>
<line number="567" hits="26" branch="false"/>
<line number="568" hits="26" branch="false"/>
<line number="569" hits="26" branch="false"/>
<line number="571" hits="13" branch="false"/>
<line number="575" hits="28" 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="18" branch="false"/>
<line number="595" hits="35" branch="false"/>
<line number="599" hits="225" branch="false"/>
<line number="603" hits="23" branch="false"/>
<line number="607" hits="73" 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="2" branch="false"/>
<line number="623" hits="0" branch="false"/>
<line number="627" hits="26" branch="false"/>
<line number="628" hits="26" 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="26" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="23" branch="false"/>
<line number="43" hits="23" 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="23" branch="false"/>
<line number="112" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="122" hits="21" branch="false"/>
<line number="123" hits="21" branch="false"/>
<line number="124" hits="21" 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="23" 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="23" 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="2" branch="false"/>
<line number="66" hits="2" 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="2" 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="23" branch="false"/>
<line number="90" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="91" hits="2" branch="false"/>
<line number="92" hits="2" branch="false"/>
<line number="94" hits="23" 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="22" branch="false"/>
<line number="55" hits="22" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="1" branch="false"/>
<line number="42" hits="23" branch="false"/>
<line number="43" hits="23" 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="23" branch="false"/>
<line number="54" hits="22" branch="false"/>
<line number="55" hits="22" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" 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="2" branch="false"/>
<line number="89" hits="23" branch="false"/>
<line number="90" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="91" hits="2" branch="false"/>
<line number="92" hits="2" branch="false"/>
<line number="94" hits="23" branch="false"/>
<line number="108" hits="23" branch="false"/>
<line number="112" hits="23" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="122" hits="21" branch="false"/>
<line number="123" hits="21" branch="false"/>
<line number="124" hits="21" 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="23" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.IniSecurityManagerFactory" filename="org/apache/shiro/config/IniSecurityManagerFactory.java" line-rate="0.8023255813953488" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="1" branch="false"/>
<line number="62" hits="1" 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="2" branch="false"/>
<line number="70" hits="2" 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="22" branch="false"/>
<line number="65" hits="22" branch="false"/>
<line number="66" hits="22" 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="19" branch="false"/>
<line number="220" hits="19" branch="false"/>
<line number="221" hits="19" 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="19" 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="19" 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="19" 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="21" branch="false"/>
<line number="161" hits="21" 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="23" 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="21" branch="false"/>
<line number="146" hits="21" branch="false"/>
<line number="147" hits="21" branch="false"/>
<line number="149" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="7" branch="false"/>
<line number="151" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="7" branch="false"/>
<line number="156" hits="21" 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="23" 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="21" 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="21" branch="false"/>
<line number="89" hits="21" 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="21" 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="7" branch="false"/>
<line number="248" hits="7" branch="false"/>
<line number="249" hits="7" branch="false"/>
<line number="250" hits="7" 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="21" branch="false"/>
<line number="98" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="4" branch="false"/>
<line number="102" hits="21" 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="21" branch="false"/>
<line number="124" hits="21" branch="false"/>
<line number="126" hits="21" branch="false"/>
<line number="128" hits="21" branch="false"/>
<line number="130" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="20" branch="false"/>
<line number="135" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="19" branch="false"/>
<line number="140" hits="21" 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.7058823529411765" branch-rate="0.5833333333333334">
<lines>
<line number="177" hits="20" branch="false"/>
<line number="180" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="54" branch="false"/>
<line number="183" hits="54" branch="false"/>
<line number="185" hits="54" 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="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="19" branch="false"/>
<line number="190" hits="19" branch="false"/>
<line number="191" hits="19" 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="200" hits="19" branch="false"/>
<line number="202" hits="54" branch="false"/>
<line number="204" hits="20" 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="21" 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="21" branch="false"/>
<line number="107" hits="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="21" branch="false"/>
<line number="110" hits="21" branch="false"/>
<line number="111" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="112" hits="1" branch="false"/>
<line number="114" hits="1" branch="false"/>
<line number="117" hits="21" 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="21" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="23" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="64" hits="22" branch="false"/>
<line number="65" hits="22" branch="false"/>
<line number="66" hits="22" branch="false"/>
<line number="69" hits="2" branch="false"/>
<line number="70" hits="2" 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="21" branch="false"/>
<line number="81" hits="23" branch="false"/>
<line number="85" hits="21" 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="21" branch="false"/>
<line number="89" hits="21" 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="21" branch="false"/>
<line number="97" hits="21" branch="false"/>
<line number="98" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="4" branch="false"/>
<line number="102" hits="21" branch="false"/>
<line number="106" hits="21" branch="false"/>
<line number="107" hits="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="21" branch="false"/>
<line number="110" hits="21" branch="false"/>
<line number="111" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="112" hits="1" branch="false"/>
<line number="114" hits="1" branch="false"/>
<line number="117" hits="21" branch="false"/>
<line number="123" hits="21" branch="false"/>
<line number="124" hits="21" branch="false"/>
<line number="126" hits="21" branch="false"/>
<line number="128" hits="21" branch="false"/>
<line number="130" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="20" branch="false"/>
<line number="135" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="19" branch="false"/>
<line number="140" hits="21" branch="false"/>
<line number="144" hits="21" branch="false"/>
<line number="146" hits="21" branch="false"/>
<line number="147" hits="21" branch="false"/>
<line number="149" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="7" branch="false"/>
<line number="151" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="7" branch="false"/>
<line number="156" hits="21" branch="false"/>
<line number="160" hits="21" branch="false"/>
<line number="161" hits="21" 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="20" branch="false"/>
<line number="180" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="54" branch="false"/>
<line number="183" hits="54" branch="false"/>
<line number="185" hits="54" 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="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="19" branch="false"/>
<line number="190" hits="19" branch="false"/>
<line number="191" hits="19" 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="200" hits="19" branch="false"/>
<line number="202" hits="54" branch="false"/>
<line number="204" hits="20" branch="false"/>
<line number="208" hits="19" 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="19" 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="19" branch="false"/>
<line number="219" hits="19" branch="false"/>
<line number="220" hits="19" branch="false"/>
<line number="221" hits="19" branch="false"/>
<line number="234" hits="21" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="7" branch="false"/>
<line number="248" hits="7" branch="false"/>
<line number="249" hits="7" branch="false"/>
<line number="250" hits="7" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.ReflectionBuilder" filename="org/apache/shiro/config/ReflectionBuilder.java" line-rate="0.8060836501901141" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="22" branch="false"/>
<line number="63" hits="22" branch="false"/>
<line number="64" hits="22" 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="26" branch="false"/>
<line number="67" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="26" 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="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="81" branch="false"/>
<line number="423" hits="81" branch="false"/>
<line number="424" hits="81" branch="false"/>
<line number="425" hits="81" branch="false"/>
<line number="427" hits="81" branch="false"/>
<line number="429" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="431" hits="9" branch="false"/>
<line number="433" hits="9" branch="false"/>
<line number="435" hits="9" branch="false"/>
<line number="438" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="439" hits="3" branch="false"/>
<line number="440" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="441" hits="3" branch="false"/>
<line number="446" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="448" hits="78" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="72" branch="false"/>
<line number="453" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="454" hits="4" branch="false"/>
<line number="455" hits="4" branch="false"/>
<line number="457" hits="4" branch="false"/>
<line number="458" hits="4" branch="false"/>
<line number="460" hits="2" branch="false"/>
<line number="461" hits="2" branch="false"/>
<line number="462" hits="2" branch="false"/>
<line number="467" hits="3" branch="false"/>
<line number="468" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="2" branch="false"/>
<line number="470" hits="2" branch="false"/>
<line number="471" hits="2" branch="false"/>
<line number="472" hits="2" branch="false"/>
<line number="474" hits="1" branch="false"/>
<line number="475" hits="1" branch="false"/>
<line number="478" hits="3" 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="3" branch="false"/>
<line number="485" hits="80" 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="72" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="538" hits="1" branch="false"/>
<line number="539" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="540" hits="1" branch="false"/>
<line number="541" hits="70" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="3" branch="false"/>
<line number="543" hits="3" branch="false"/>
<line number="544" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="545" hits="2" branch="false"/>
<line number="546" hits="65" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="547" hits="2" branch="false"/>
<line number="548" hits="63" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="549" hits="3" branch="false"/>
<line number="550" hits="60" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="551" hits="3" branch="false"/>
<line number="552" hits="57" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="553" hits="2" branch="false"/>
<line number="554" hits="55" 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="55" branch="false"/>
<line number="559" hits="55" branch="false"/>
<line number="562" hits="71" branch="false"/>
<line number="563" hits="70" 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="71" branch="false"/>
<line number="160" hits="71" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="161" hits="71" branch="false"/>
<line number="162" hits="71" branch="false"/>
<line number="164" hits="71" 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="71" branch="false"/>
<line number="170" hits="69" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="69" 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="71" branch="false"/>
<line number="194" hits="71" 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="71" 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="71" branch="false"/>
<line number="208" hits="69" 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="44" 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="40" branch="false"/>
<line number="107" hits="40" branch="false"/>
<line number="109" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="137" 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="66" branch="false"/>
<line number="113" hits="71" branch="false"/>
<line number="115" hits="137" branch="false"/>
<line number="118" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="66" branch="false"/>
<line number="120" hits="66" branch="false"/>
<line number="123" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="71" branch="false"/>
<line number="125" hits="69" branch="false"/>
<line number="129" hits="42" branch="false"/>
<line number="131" hits="42" 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="58" 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="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="410" hits="1" branch="false"/>
<line number="413" hits="57" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="414" hits="1" branch="false"/>
<line number="416" hits="56" 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="66" branch="false"/>
<line number="137" hits="66" 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="66" branch="false"/>
<line number="145" hits="66" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="14" 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="66" branch="false"/>
<line number="153" hits="66" branch="false"/>
<line number="154" hits="66" 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="21" branch="false"/>
</lines>
</method>
<method name="getBean" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.625" branch-rate="0.5">
<lines>
<line number="84" hits="21" 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="21" branch="false"/>
<line number="88" hits="21" 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="21" 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="95" hits="21" 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="38" 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="1" 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="6" 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="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="220" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="1" branch="false"/>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="37" 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="70" 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="84" 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.38461538461538464" branch-rate="0.5">
<lines>
<line number="247" hits="376" 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="376" branch="false"/>
<line number="252" hits="376" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="253" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="376" branch="false"/>
<line number="258" hits="376" 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="38" branch="false"/>
<line number="238" hits="38" branch="false"/>
<line number="239" hits="38" branch="false"/>
<line number="240" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="241" hits="1" branch="false"/>
<line number="243" hits="36" 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="79" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="397" hits="33" branch="false"/>
<line number="399" hits="46" branch="false"/>
<line number="401" hits="78" 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="2" branch="false"/>
<line number="516" hits="0" branch="false"/>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="2" branch="false"/>
<line number="519" hits="2" 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="72" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="72" branch="false"/>
<line number="493" hits="72" branch="false"/>
<line number="494" hits="1" branch="false"/>
<line number="495" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="501" hits="1" branch="false"/>
<line number="502" hits="71" branch="false"/>
<line number="503" hits="71" 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="2" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="385" hits="1" branch="false"/>
<line number="386" hits="1" branch="false"/>
<line number="387" hits="1" branch="false"/>
<line number="389" hits="1" branch="false"/>
<line number="391" hits="2" 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="3" branch="false"/>
<line number="335" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="0" branch="false"/>
<line number="340" hits="3" 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="2" branch="false"/>
<line number="342" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="343" hits="1" branch="false"/>
<line number="348" hits="2" branch="false"/>
<line number="349" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="353" hits="2" 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="3" branch="false"/>
<line number="358" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="0" branch="false"/>
<line number="363" hits="3" 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="1" branch="false"/>
<line number="365" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="366" hits="1" branch="false"/>
<line number="371" hits="2" branch="false"/>
<line number="372" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="5" branch="false"/>
<line number="374" hits="5" branch="false"/>
<line number="376" hits="2" 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="2" branch="false"/>
<line number="296" 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="297" hits="0" branch="false"/>
<line number="301" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="1" branch="false"/>
<line number="303" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="1" branch="false"/>
<line number="308" hits="1" branch="false"/>
<line number="309" hits="3" 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="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="2" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="2" branch="false"/>
<line number="324" hits="2" branch="false"/>
<line number="325" hits="2" branch="false"/>
<line number="326" hits="2" branch="false"/>
<line number="327" hits="1" 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="2" branch="false"/>
<line number="270" 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="271" hits="0" branch="false"/>
<line number="275" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="276" hits="1" branch="false"/>
<line number="277" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="1" branch="false"/>
<line number="282" hits="1" branch="false"/>
<line number="285" hits="1" branch="false"/>
<line number="286" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="288" hits="2" branch="false"/>
<line number="289" hits="2" branch="false"/>
<line number="290" hits="1" 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="46" 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="1" branch="false"/>
<line number="233" hits="45" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="1" branch="false"/>
<line number="62" hits="22" branch="false"/>
<line number="63" hits="22" branch="false"/>
<line number="64" hits="22" branch="false"/>
<line number="66" hits="26" branch="false"/>
<line number="67" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="26" 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="21" branch="false"/>
<line number="84" hits="21" 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="21" branch="false"/>
<line number="88" hits="21" 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="21" 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="95" hits="21" branch="false"/>
<line number="100" hits="44" 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="40" branch="false"/>
<line number="107" hits="40" branch="false"/>
<line number="109" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="137" 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="66" branch="false"/>
<line number="113" hits="71" branch="false"/>
<line number="115" hits="137" branch="false"/>
<line number="118" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="66" branch="false"/>
<line number="120" hits="66" branch="false"/>
<line number="123" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="71" branch="false"/>
<line number="125" hits="69" branch="false"/>
<line number="129" hits="42" branch="false"/>
<line number="131" hits="42" branch="false"/>
<line number="136" hits="66" branch="false"/>
<line number="137" hits="66" 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="66" branch="false"/>
<line number="145" hits="66" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="14" 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="66" branch="false"/>
<line number="153" hits="66" branch="false"/>
<line number="154" hits="66" branch="false"/>
<line number="158" hits="71" branch="false"/>
<line number="160" hits="71" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="161" hits="71" branch="false"/>
<line number="162" hits="71" branch="false"/>
<line number="164" hits="71" 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="71" branch="false"/>
<line number="170" hits="69" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="69" 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="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="71" branch="false"/>
<line number="194" hits="71" 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="71" 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="71" branch="false"/>
<line number="208" hits="69" branch="false"/>
<line number="211" hits="84" 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="38" branch="false"/>
<line number="219" 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="220" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="1" branch="false"/>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="37" branch="false"/>
<line number="230" hits="46" 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="1" branch="false"/>
<line number="233" hits="45" branch="false"/>
<line number="237" hits="38" branch="false"/>
<line number="238" hits="38" branch="false"/>
<line number="239" hits="38" branch="false"/>
<line number="240" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="241" hits="1" branch="false"/>
<line number="243" hits="36" branch="false"/>
<line number="247" hits="376" 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="376" branch="false"/>
<line number="252" hits="376" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="253" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="376" branch="false"/>
<line number="258" hits="376" 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="2" branch="false"/>
<line number="270" 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="271" hits="0" branch="false"/>
<line number="275" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="276" hits="1" branch="false"/>
<line number="277" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="1" branch="false"/>
<line number="282" hits="1" branch="false"/>
<line number="285" hits="1" branch="false"/>
<line number="286" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="288" hits="2" branch="false"/>
<line number="289" hits="2" branch="false"/>
<line number="290" hits="1" branch="false"/>
<line number="294" hits="2" branch="false"/>
<line number="296" 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="297" hits="0" branch="false"/>
<line number="301" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="1" branch="false"/>
<line number="303" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="1" branch="false"/>
<line number="308" hits="1" branch="false"/>
<line number="309" hits="3" 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="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="2" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="2" branch="false"/>
<line number="324" hits="2" branch="false"/>
<line number="325" hits="2" branch="false"/>
<line number="326" hits="2" branch="false"/>
<line number="327" hits="1" branch="false"/>
<line number="334" hits="3" branch="false"/>
<line number="335" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="0" branch="false"/>
<line number="340" hits="3" 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="2" branch="false"/>
<line number="342" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="343" hits="1" branch="false"/>
<line number="348" hits="2" branch="false"/>
<line number="349" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="353" hits="2" branch="false"/>
<line number="357" hits="3" branch="false"/>
<line number="358" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="0" branch="false"/>
<line number="363" hits="3" 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="1" branch="false"/>
<line number="365" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="366" hits="1" branch="false"/>
<line number="371" hits="2" branch="false"/>
<line number="372" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="5" branch="false"/>
<line number="374" hits="5" branch="false"/>
<line number="376" hits="2" branch="false"/>
<line number="380" hits="2" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="385" hits="1" branch="false"/>
<line number="386" hits="1" branch="false"/>
<line number="387" hits="1" branch="false"/>
<line number="389" hits="1" branch="false"/>
<line number="391" hits="2" branch="false"/>
<line number="396" hits="79" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="397" hits="33" branch="false"/>
<line number="399" hits="46" branch="false"/>
<line number="401" hits="78" branch="false"/>
<line number="405" hits="58" 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="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="410" hits="1" branch="false"/>
<line number="413" hits="57" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="414" hits="1" branch="false"/>
<line number="416" hits="56" branch="false"/>
<line number="422" hits="81" branch="false"/>
<line number="423" hits="81" branch="false"/>
<line number="424" hits="81" branch="false"/>
<line number="425" hits="81" branch="false"/>
<line number="427" hits="81" branch="false"/>
<line number="429" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="431" hits="9" branch="false"/>
<line number="433" hits="9" branch="false"/>
<line number="435" hits="9" branch="false"/>
<line number="438" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="439" hits="3" branch="false"/>
<line number="440" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="441" hits="3" branch="false"/>
<line number="446" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="448" hits="78" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="72" branch="false"/>
<line number="453" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="454" hits="4" branch="false"/>
<line number="455" hits="4" branch="false"/>
<line number="457" hits="4" branch="false"/>
<line number="458" hits="4" branch="false"/>
<line number="460" hits="2" branch="false"/>
<line number="461" hits="2" branch="false"/>
<line number="462" hits="2" branch="false"/>
<line number="467" hits="3" branch="false"/>
<line number="468" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="2" branch="false"/>
<line number="470" hits="2" branch="false"/>
<line number="471" hits="2" branch="false"/>
<line number="472" hits="2" branch="false"/>
<line number="474" hits="1" branch="false"/>
<line number="475" hits="1" branch="false"/>
<line number="478" hits="3" 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="3" branch="false"/>
<line number="485" hits="80" branch="false"/>
<line number="489" hits="72" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="72" branch="false"/>
<line number="493" hits="72" branch="false"/>
<line number="494" hits="1" branch="false"/>
<line number="495" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="501" hits="1" branch="false"/>
<line number="502" hits="71" branch="false"/>
<line number="503" hits="71" branch="false"/>
<line number="507" hits="6" branch="false"/>
<line number="508" hits="0" branch="false"/>
<line number="509" hits="0" branch="false"/>
<line number="515" hits="2" branch="false"/>
<line number="516" hits="0" branch="false"/>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="2" branch="false"/>
<line number="519" hits="2" branch="false"/>
<line number="523" hits="1" branch="false"/>
<line number="524" hits="0" branch="false"/>
<line number="525" hits="0" branch="false"/>
<line number="530" hits="70" branch="false"/>
<line number="537" hits="72" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="538" hits="1" branch="false"/>
<line number="539" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="540" hits="1" branch="false"/>
<line number="541" hits="70" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="3" branch="false"/>
<line number="543" hits="3" branch="false"/>
<line number="544" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="545" hits="2" branch="false"/>
<line number="546" hits="65" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="547" hits="2" branch="false"/>
<line number="548" hits="63" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="549" hits="3" branch="false"/>
<line number="550" hits="60" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="551" hits="3" branch="false"/>
<line number="552" hits="57" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="553" hits="2" branch="false"/>
<line number="554" hits="55" 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="55" branch="false"/>
<line number="559" hits="55" branch="false"/>
<line number="562" hits="71" branch="false"/>
<line number="563" hits="70" 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="1" branch="false"/>
<line number="43" hits="1" 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="1" branch="false"/>
<line number="43" hits="1" 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.6855345911949685" 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="6" branch="false"/>
<line number="34" hits="6" branch="false"/>
</lines>
</method>
<method name="generateNewKey" signature="()Ljava/security/Key;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="6" 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="6" 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="6" branch="false"/>
<line number="61" hits="6" branch="false"/>
<line number="62" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="6" branch="false"/>
<line number="34" hits="6" branch="false"/>
<line number="43" hits="6" branch="false"/>
<line number="56" hits="6" 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="6" branch="false"/>
<line number="61" hits="6" branch="false"/>
<line number="62" hits="6" 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="4" branch="false"/>
<line number="88" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="87" hits="4" branch="false"/>
<line number="88" hits="4" 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="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" 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="1" branch="false"/>
<line number="40" hits="1" 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="1" branch="false"/>
<line number="40" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.DefaultBlockCipherService" filename="org/apache/shiro/crypto/DefaultBlockCipherService.java" line-rate="0.5135135135135135" 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="6" branch="false"/>
<line number="167" hits="6" branch="false"/>
<line number="168" hits="6" branch="false"/>
<line number="169" hits="6" branch="false"/>
<line number="171" hits="6" branch="false"/>
<line number="172" hits="6" branch="false"/>
<line number="173" hits="6" branch="false"/>
<line number="174" hits="6" branch="false"/>
</lines>
</method>
<method name="buildStreamingTransformationString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="463" hits="2" branch="false"/>
</lines>
</method>
<method name="buildTransformationString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="459" hits="2" 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="4" branch="false"/>
<line number="468" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="4" branch="false"/>
<line number="471" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="475" hits="4" branch="false"/>
<line number="477" hits="4" branch="false"/>
</lines>
</method>
<method name="generateInitializationVector" signature="(Z)[B" line-rate="0.6363636363636364" branch-rate="0.6666666666666666">
<lines>
<line number="512" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="513" hits="4" branch="false"/>
<line number="514" hits="4" 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="4" branch="false"/>
<line number="521" hits="4" branch="false"/>
<line number="522" hits="4" 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="8" branch="false"/>
</lines>
</method>
<method name="getBlockSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="335" hits="2" branch="false"/>
</lines>
</method>
<method name="getModeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="193" hits="14" branch="false"/>
</lines>
</method>
<method name="getPaddingSchemeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="2" 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="6" branch="false"/>
</lines>
</method>
<method name="getStreamingPaddingSchemeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="411" hits="2" 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="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="2" branch="false"/>
<line number="449" hits="8" branch="false"/>
<line number="451" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="452" hits="2" branch="false"/>
<line number="454" hits="8" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="(Z)Z" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="507" hits="16" 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="16" 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>
</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/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="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="6" branch="false"/>
<line number="167" hits="6" branch="false"/>
<line number="168" hits="6" branch="false"/>
<line number="169" hits="6" branch="false"/>
<line number="171" hits="6" branch="false"/>
<line number="172" hits="6" branch="false"/>
<line number="173" hits="6" branch="false"/>
<line number="174" hits="6" branch="false"/>
<line number="193" hits="14" 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="2" 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="2" 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="6" branch="false"/>
<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="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="2" 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="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="2" branch="false"/>
<line number="449" hits="8" branch="false"/>
<line number="451" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="452" hits="2" branch="false"/>
<line number="454" hits="8" branch="false"/>
<line number="459" hits="2" branch="false"/>
<line number="463" hits="2" branch="false"/>
<line number="467" hits="4" branch="false"/>
<line number="468" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="4" branch="false"/>
<line number="471" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="475" hits="4" branch="false"/>
<line number="477" hits="4" branch="false"/>
<line number="489" hits="16" 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="507" hits="16" 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="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="513" hits="4" branch="false"/>
<line number="514" hits="4" 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="4" branch="false"/>
<line number="521" hits="4" branch="false"/>
<line number="522" hits="4" 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="8" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.JcaCipherService" filename="org/apache/shiro/crypto/JcaCipherService.java" line-rate="0.7245508982035929" 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="1" 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="7" branch="false"/>
<line number="126" hits="7" 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="7" branch="false"/>
<line number="130" hits="7" branch="false"/>
<line number="131" hits="7" branch="false"/>
<line number="132" hits="7" branch="false"/>
<line number="133" hits="7" branch="false"/>
<line number="134" hits="7" 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="8" 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="8" 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="8" branch="false"/>
<line number="573" hits="8" branch="false"/>
<line number="575" hits="8" branch="false"/>
<line number="576" hits="8" branch="false"/>
<line number="580" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="581" hits="16" branch="false"/>
<line number="583" hits="0" branch="false"/>
<line number="584" hits="0" branch="false"/>
<line number="585" hits="8" branch="false"/>
<line number="586" hits="8" 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="8" 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="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="442" hits="0" branch="false"/>
<line number="444" hits="8" branch="false"/>
<line number="445" hits="8" 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="4" branch="false"/>
<line number="528" hits="4" 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="4" branch="false"/>
<line number="534" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="537" hits="4" branch="false"/>
<line number="538" hits="4" branch="false"/>
<line number="539" hits="4" branch="false"/>
<line number="543" hits="4" 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="4" branch="false"/>
<line number="549" hits="4" 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="4" branch="false"/>
<line number="557" hits="4" 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="4" branch="false"/>
<line number="561" hits="4" 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="5" branch="false"/>
<line number="352" hits="5" branch="false"/>
<line number="354" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="365" hits="5" branch="false"/>
<line number="366" hits="5" branch="false"/>
<line number="369" hits="5" branch="false"/>
<line number="370" hits="5" branch="false"/>
<line number="373" hits="4" branch="false"/>
<line number="374" hits="4" branch="false"/>
<line number="375" hits="4" branch="false"/>
<line number="376" hits="1" branch="false"/>
<line number="377" hits="1" branch="false"/>
<line number="378" hits="1" branch="false"/>
<line number="379" hits="4" branch="false"/>
<line number="382" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="387" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="390" hits="4" branch="false"/>
<line number="391" hits="4" 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="4" branch="false"/>
<line number="502" hits="4" branch="false"/>
<line number="503" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="504" hits="4" branch="false"/>
<line number="505" 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="506" hits="0" branch="false"/>
<line number="510" hits="4" branch="false"/>
<line number="511" hits="4" 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="4" 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="4" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="519" hits="0" branch="false"/>
<line number="520" hits="4" branch="false"/>
<line number="523" hits="4" branch="false"/>
<line number="524" hits="4" 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="4" branch="false"/>
<line number="305" hits="4" branch="false"/>
<line number="306" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="4" branch="false"/>
<line number="308" 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="309" hits="0" branch="false"/>
<line number="313" hits="4" 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="4" branch="false"/>
<line number="322" hits="4" 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="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="331" hits="4" branch="false"/>
<line number="334" hits="4" branch="false"/>
<line number="335" hits="4" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="339" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" 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="344" hits="4" branch="false"/>
</lines>
</method>
<method name="ensureSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="263" hits="8" branch="false"/>
<line number="264" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="265" hits="8" branch="false"/>
<line number="267" hits="8" branch="false"/>
</lines>
</method>
<method name="generateInitializationVector" signature="(Z)[B" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="285" hits="8" branch="false"/>
<line number="286" hits="8" 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="290" hits="0" branch="false"/>
<line number="292" hits="8" 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="8" branch="false"/>
<line number="297" hits="8" branch="false"/>
<line number="298" hits="8" branch="false"/>
<line number="299" hits="8" branch="false"/>
<line number="300" hits="8" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="143" hits="26" branch="false"/>
</lines>
</method>
<method name="getDefaultSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="254" hits="8" 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="17" branch="false"/>
</lines>
</method>
<method name="getKeySize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="152" hits="6" branch="false"/>
</lines>
</method>
<method name="getSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="238" hits="24" branch="false"/>
</lines>
</method>
<method name="getStreamingBufferSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="213" hits="8" 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="16" 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="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="16" 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="16" branch="false"/>
<line number="497" hits="16" 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="16" branch="false"/>
<line number="592" hits="16" branch="false"/>
<line number="593" hits="16" branch="false"/>
<line number="594" 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="595" hits="16" branch="false"/>
<line number="598" hits="16" branch="false"/>
<line number="600" hits="16" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="165" hits="9" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="(Z)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="199" hits="1" branch="false"/>
</lines>
</method>
<method name="newCipherInstance" signature="(Z)Ljavax/crypto/Cipher;" line-rate="0.4" branch-rate="1.0">
<lines>
<line number="406" hits="16" branch="false"/>
<line number="408" hits="16" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" 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="2" 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="2" branch="false"/>
<line number="196" hits="2" 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="1" branch="false"/>
<line number="125" hits="7" branch="false"/>
<line number="126" hits="7" 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="7" branch="false"/>
<line number="130" hits="7" branch="false"/>
<line number="131" hits="7" branch="false"/>
<line number="132" hits="7" branch="false"/>
<line number="133" hits="7" branch="false"/>
<line number="134" hits="7" branch="false"/>
<line number="143" hits="26" branch="false"/>
<line number="152" hits="6" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="165" hits="9" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="178" hits="17" branch="false"/>
<line number="190" hits="2" 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="2" branch="false"/>
<line number="196" hits="2" branch="false"/>
<line number="199" hits="1" branch="false"/>
<line number="213" hits="8" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
<line number="238" hits="24" branch="false"/>
<line number="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="254" hits="8" 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="8" branch="false"/>
<line number="264" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="265" hits="8" branch="false"/>
<line number="267" hits="8" branch="false"/>
<line number="281" hits="0" branch="false"/>
<line number="285" hits="8" branch="false"/>
<line number="286" hits="8" 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="290" hits="0" branch="false"/>
<line number="292" hits="8" 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="8" branch="false"/>
<line number="297" hits="8" branch="false"/>
<line number="298" hits="8" branch="false"/>
<line number="299" hits="8" branch="false"/>
<line number="300" hits="8" branch="false"/>
<line number="304" hits="4" branch="false"/>
<line number="305" hits="4" branch="false"/>
<line number="306" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="4" branch="false"/>
<line number="308" 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="309" hits="0" branch="false"/>
<line number="313" hits="4" branch="false"/>
<line number="318" hits="4" branch="false"/>
<line number="322" hits="4" 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="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="331" hits="4" branch="false"/>
<line number="334" hits="4" branch="false"/>
<line number="335" hits="4" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="339" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" 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="344" hits="4" branch="false"/>
<line number="349" hits="5" branch="false"/>
<line number="352" hits="5" branch="false"/>
<line number="354" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="365" hits="5" branch="false"/>
<line number="366" hits="5" branch="false"/>
<line number="369" hits="5" branch="false"/>
<line number="370" hits="5" branch="false"/>
<line number="373" hits="4" branch="false"/>
<line number="374" hits="4" branch="false"/>
<line number="375" hits="4" branch="false"/>
<line number="376" hits="1" branch="false"/>
<line number="377" hits="1" branch="false"/>
<line number="378" hits="1" branch="false"/>
<line number="379" hits="4" branch="false"/>
<line number="382" hits="4" branch="false"/>
<line number="386" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="387" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="390" hits="4" branch="false"/>
<line number="391" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="16" branch="false"/>
<line number="408" hits="16" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="414" hits="0" branch="false"/>
<line number="441" 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="442" hits="0" branch="false"/>
<line number="444" hits="8" branch="false"/>
<line number="445" hits="8" branch="false"/>
<line number="459" hits="8" 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="16" 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="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="16" 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="16" branch="false"/>
<line number="497" hits="16" branch="false"/>
<line number="501" hits="4" branch="false"/>
<line number="502" hits="4" branch="false"/>
<line number="503" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="504" hits="4" branch="false"/>
<line number="505" 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="506" hits="0" branch="false"/>
<line number="510" hits="4" branch="false"/>
<line number="511" hits="4" branch="false"/>
<line number="514" hits="4" 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="4" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="519" hits="0" branch="false"/>
<line number="520" hits="4" branch="false"/>
<line number="523" hits="4" branch="false"/>
<line number="524" hits="4" branch="false"/>
<line number="527" hits="4" branch="false"/>
<line number="528" hits="4" branch="false"/>
<line number="532" hits="4" branch="false"/>
<line number="534" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="537" hits="4" branch="false"/>
<line number="538" hits="4" branch="false"/>
<line number="539" hits="4" branch="false"/>
<line number="543" hits="4" 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="4" branch="false"/>
<line number="549" hits="4" 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="4" branch="false"/>
<line number="557" hits="4" branch="false"/>
<line number="560" hits="4" branch="false"/>
<line number="561" hits="4" branch="false"/>
<line number="564" hits="8" 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="8" 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="8" branch="false"/>
<line number="573" hits="8" branch="false"/>
<line number="575" hits="8" branch="false"/>
<line number="576" hits="8" branch="false"/>
<line number="580" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="581" hits="16" branch="false"/>
<line number="583" hits="0" branch="false"/>
<line number="584" hits="0" branch="false"/>
<line number="585" hits="8" branch="false"/>
<line number="586" hits="8" branch="false"/>
<line number="591" hits="16" branch="false"/>
<line number="592" hits="16" branch="false"/>
<line number="593" hits="16" branch="false"/>
<line number="594" 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="595" hits="16" branch="false"/>
<line number="598" hits="16" branch="false"/>
<line number="600" hits="16" 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="12" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="69" hits="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="88" hits="1" branch="false"/>
<line number="98" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="126" hits="1" branch="false"/>
<line number="134" hits="1" branch="false"/>
<line number="142" hits="1" 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="12" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="69" hits="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="88" hits="1" branch="false"/>
<line number="98" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="126" hits="1" branch="false"/>
<line number="134" hits="1" branch="false"/>
<line number="142" hits="1" 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="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="77" hits="1" branch="false"/>
<line number="87" hits="1" branch="false"/>
<line number="97" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="117" hits="1" branch="false"/>
<line number="127" hits="1" branch="false"/>
<line number="134" hits="1" branch="false"/>
<line number="140" hits="1" branch="false"/>
<line number="146" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;ILjava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="150" hits="11" branch="false"/>
<line number="151" hits="11" branch="false"/>
<line number="152" hits="11" branch="false"/>
</lines>
</method>
<method name="getTransformationName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="12" 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="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="77" hits="1" branch="false"/>
<line number="87" hits="1" branch="false"/>
<line number="97" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="117" hits="1" branch="false"/>
<line number="127" hits="1" branch="false"/>
<line number="134" hits="1" branch="false"/>
<line number="140" hits="1" branch="false"/>
<line number="146" hits="1" branch="false"/>
<line number="150" hits="11" branch="false"/>
<line number="151" hits="11" branch="false"/>
<line number="152" hits="11" branch="false"/>
<line number="163" hits="12" 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="45" branch="false"/>
<line number="48" hits="45" branch="false"/>
<line number="49" hits="45" branch="false"/>
<line number="50" hits="45" branch="false"/>
</lines>
</method>
<method name="getDefaultNextBytesSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="28" 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="28" 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="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="2" branch="false"/>
<line number="116" hits="30" branch="false"/>
<line number="117" hits="30" branch="false"/>
<line number="118" hits="30" branch="false"/>
</lines>
</method>
<method name="setDefaultNextBytesSize" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="81" hits="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="45" branch="false"/>
<line number="48" hits="45" branch="false"/>
<line number="49" hits="45" branch="false"/>
<line number="50" hits="45" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="91" hits="28" branch="false"/>
<line number="102" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="109" hits="28" branch="false"/>
<line number="113" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="2" branch="false"/>
<line number="116" hits="30" branch="false"/>
<line number="117" hits="30" branch="false"/>
<line number="118" hits="30" 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="135" branch="false"/>
<line number="73" hits="135" 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="135" branch="false"/>
<line number="57" hits="135" branch="false"/>
<line number="61" hits="135" 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="135" branch="false"/>
<line number="57" hits="135" branch="false"/>
<line number="61" hits="135" branch="false"/>
<line number="72" hits="135" branch="false"/>
<line number="73" hits="135" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" 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"/>
<line number="113" hits="28" branch="false"/>
<line number="114" hits="28" branch="false"/>
<line number="115" hits="28" 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="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="251" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="27" branch="false"/>
<line number="256" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="257" hits="6" branch="false"/>
<line number="260" hits="21" branch="false"/>
<line number="262" hits="21" branch="false"/>
<line number="263" hits="133" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="264" hits="112" 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="112" branch="false"/>
<line number="267" hits="365" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="344" 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="344" branch="false"/>
<line number="272" hits="21" 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="29" 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="2" branch="false"/>
<line number="155" hits="27" branch="false"/>
<line number="156" hits="27" branch="false"/>
<line number="157" hits="27" branch="false"/>
<line number="159" hits="27" branch="false"/>
<line number="160" hits="27" branch="false"/>
<line number="161" hits="27" branch="false"/>
<line number="163" hits="27" branch="false"/>
<line number="165" hits="27" branch="false"/>
<line number="166" hits="27" branch="false"/>
<line number="167" hits="27" branch="false"/>
<line number="169" hits="27" branch="false"/>
<line number="171" hits="27" 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="27" branch="false"/>
<line number="176" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="22" branch="false"/>
<line number="179" hits="27" branch="false"/>
</lines>
</method>
<method name="getHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="280" hits="22" branch="false"/>
</lines>
</method>
<method name="getHashIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="296" hits="22" 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="27" branch="false"/>
<line number="184" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="22" branch="false"/>
<line number="187" hits="27" 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="45" 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="27" branch="false"/>
<line number="216" hits="27" 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="9" branch="false"/>
<line number="221" hits="18" branch="false"/>
<line number="224" hits="18" branch="false"/>
<line number="225" 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="229" hits="18" 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="12" branch="false"/>
<line number="233" hits="18" 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="12" branch="false"/>
</lines>
</method>
<method name="isGeneratePublicSalt" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="323" hits="14" branch="false"/>
</lines>
</method>
<method name="setGeneratePublicSalt" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="342" hits="19" branch="false"/>
<line number="343" hits="19" 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="18" branch="false"/>
<line number="277" hits="18" branch="false"/>
</lines>
</method>
<method name="setHashIterations" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="292" hits="18" branch="false"/>
<line number="293" hits="18" 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="4" branch="false"/>
<line number="285" hits="4" 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="1" branch="false"/>
<line number="301" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="1" branch="false"/>
<line number="110" hits="28" branch="false"/>
<line number="111" hits="28" branch="false"/>
<line number="112" hits="28" branch="false"/>
<line number="113" hits="28" branch="false"/>
<line number="114" hits="28" branch="false"/>
<line number="115" hits="28" branch="false"/>
<line number="151" hits="29" 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="2" branch="false"/>
<line number="155" hits="27" branch="false"/>
<line number="156" hits="27" branch="false"/>
<line number="157" hits="27" branch="false"/>
<line number="159" hits="27" branch="false"/>
<line number="160" hits="27" branch="false"/>
<line number="161" hits="27" branch="false"/>
<line number="163" hits="27" branch="false"/>
<line number="165" hits="27" branch="false"/>
<line number="166" hits="27" branch="false"/>
<line number="167" hits="27" branch="false"/>
<line number="169" hits="27" branch="false"/>
<line number="171" hits="27" branch="false"/>
<line number="175" hits="27" branch="false"/>
<line number="176" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="22" branch="false"/>
<line number="179" hits="27" branch="false"/>
<line number="183" hits="27" branch="false"/>
<line number="184" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="22" branch="false"/>
<line number="187" hits="27" branch="false"/>
<line number="214" hits="27" branch="false"/>
<line number="216" hits="27" 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="9" branch="false"/>
<line number="221" hits="18" branch="false"/>
<line number="224" hits="18" branch="false"/>
<line number="225" 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="229" hits="18" 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="12" branch="false"/>
<line number="233" hits="18" branch="false"/>
<line number="248" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="251" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="27" branch="false"/>
<line number="256" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="257" hits="6" branch="false"/>
<line number="260" hits="21" branch="false"/>
<line number="262" hits="21" branch="false"/>
<line number="263" hits="133" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="264" hits="112" 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="112" branch="false"/>
<line number="267" hits="365" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="344" 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="344" branch="false"/>
<line number="272" hits="21" branch="false"/>
<line number="276" hits="18" branch="false"/>
<line number="277" hits="18" branch="false"/>
<line number="280" hits="22" branch="false"/>
<line number="284" hits="4" branch="false"/>
<line number="285" hits="4" branch="false"/>
<line number="288" hits="45" branch="false"/>
<line number="292" hits="18" branch="false"/>
<line number="293" hits="18" branch="false"/>
<line number="296" hits="22" branch="false"/>
<line number="300" hits="1" branch="false"/>
<line number="301" hits="1" branch="false"/>
<line number="304" hits="12" branch="false"/>
<line number="323" hits="14" branch="false"/>
<line number="342" hits="19" branch="false"/>
<line number="343" hits="19" 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="32" branch="false"/>
<line number="96" hits="32" branch="false"/>
<line number="97" hits="32" 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="32" 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="6" branch="false"/>
<line number="213" hits="6" 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="6" branch="false"/>
<line number="191" hits="6" 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="3" branch="false"/>
<line number="170" hits="3" 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="8" branch="false"/>
<line number="149" hits="8" 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="16" branch="false"/>
<line number="131" hits="16" 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="15" branch="false"/>
<line number="110" hits="15" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="95" hits="32" branch="false"/>
<line number="96" hits="32" branch="false"/>
<line number="97" hits="32" branch="false"/>
<line number="109" hits="15" branch="false"/>
<line number="110" hits="15" branch="false"/>
<line number="130" hits="16" branch="false"/>
<line number="131" hits="16" branch="false"/>
<line number="148" hits="8" branch="false"/>
<line number="149" hits="8" branch="false"/>
<line number="169" hits="3" branch="false"/>
<line number="170" hits="3" branch="false"/>
<line number="190" hits="6" branch="false"/>
<line number="191" hits="6" branch="false"/>
<line number="212" hits="6" branch="false"/>
<line number="213" hits="6" branch="false"/>
<line number="222" hits="32" 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="1" branch="false"/>
<line number="44" hits="1" 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="1" branch="false"/>
<line number="44" hits="1" 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="1" branch="false"/>
<line number="45" hits="1" 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="1" branch="false"/>
<line number="45" hits="1" 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="7" branch="false"/>
<line number="46" hits="7" 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="2" branch="false"/>
<line number="50" hits="2" 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="7" branch="false"/>
<line number="46" hits="7" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="50" hits="2" 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="11" branch="false"/>
<line number="47" hits="11" 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="4" branch="false"/>
<line number="51" hits="4" 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="1" branch="false"/>
<line number="55" hits="1" 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="11" branch="false"/>
<line number="47" hits="11" branch="false"/>
<line number="50" hits="4" branch="false"/>
<line number="51" hits="4" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" 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="1" branch="false"/>
<line number="48" hits="1" 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="1" branch="false"/>
<line number="48" hits="1" 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="1" branch="false"/>
<line number="47" hits="1" 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="1" branch="false"/>
<line number="55" hits="1" 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="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" 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="54" branch="false"/>
<line number="93" hits="54" branch="false"/>
<line number="94" hits="54" branch="false"/>
<line number="95" hits="54" 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="22" branch="false"/>
<line number="118" hits="22" 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="6" branch="false"/>
<line number="140" hits="6" 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="135" branch="false"/>
<line number="75" hits="135" branch="false"/>
<line number="166" hits="81" branch="false"/>
<line number="167" hits="81" 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="81" branch="false"/>
<line number="171" hits="81" branch="false"/>
<line number="172" hits="81" branch="false"/>
<line number="173" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="174" hits="37" branch="false"/>
<line number="175" hits="37" branch="false"/>
<line number="177" hits="81" branch="false"/>
<line number="178" hits="81" branch="false"/>
<line number="179" hits="81" 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="37" 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="81" 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="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="14" branch="false"/>
<line number="415" hits="14" 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="102" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="()[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="251" hits="137" 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="81" 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="21" 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="22" 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="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="81" branch="false"/>
<line number="230" hits="81" branch="false"/>
<line number="231" hits="81" 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="81" branch="false"/>
<line number="344" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="37" branch="false"/>
<line number="346" hits="37" branch="false"/>
<line number="348" hits="81" branch="false"/>
<line number="349" hits="81" branch="false"/>
<line number="351" hits="5000404" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="352" hits="5000323" branch="false"/>
<line number="353" hits="5000323" branch="false"/>
<line number="355" hits="81" 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="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>
</lines>
</method>
<method name="setBytes" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="135" branch="false"/>
<line number="264" hits="135" branch="false"/>
<line number="265" hits="135" branch="false"/>
<line number="266" hits="135" branch="false"/>
</lines>
</method>
<method name="setIterations" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="278" hits="34" branch="false"/>
<line number="279" hits="34" 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="33" branch="false"/>
<line number="292" hits="33" branch="false"/>
</lines>
</method>
<method name="toBase64" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="388" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="390" hits="13" branch="false"/>
<line number="392" hits="17" 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="118" 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="118" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="62" branch="false"/>
<line number="223" hits="56" branch="false"/>
<line number="224" hits="56" branch="false"/>
</lines>
</method>
<method name="toHex" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="372" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="16" branch="false"/>
<line number="375" hits="17" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="401" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="70" hits="135" branch="false"/>
<line number="75" hits="135" branch="false"/>
<line number="92" hits="54" branch="false"/>
<line number="93" hits="54" branch="false"/>
<line number="94" hits="54" branch="false"/>
<line number="95" hits="54" branch="false"/>
<line number="117" hits="22" branch="false"/>
<line number="118" hits="22" branch="false"/>
<line number="139" hits="6" branch="false"/>
<line number="140" hits="6" branch="false"/>
<line number="166" hits="81" branch="false"/>
<line number="167" hits="81" 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="81" branch="false"/>
<line number="171" hits="81" branch="false"/>
<line number="172" hits="81" branch="false"/>
<line number="173" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="174" hits="37" branch="false"/>
<line number="175" hits="37" branch="false"/>
<line number="177" hits="81" branch="false"/>
<line number="178" hits="81" branch="false"/>
<line number="179" hits="81" branch="false"/>
<line number="192" hits="81" branch="false"/>
<line number="206" hits="37" branch="false"/>
<line number="217" hits="118" 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="118" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="62" branch="false"/>
<line number="223" hits="56" branch="false"/>
<line number="224" hits="56" branch="false"/>
<line number="228" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="81" branch="false"/>
<line number="230" hits="81" branch="false"/>
<line number="231" hits="81" branch="false"/>
<line number="239" hits="102" branch="false"/>
<line number="243" hits="22" branch="false"/>
<line number="247" hits="21" branch="false"/>
<line number="251" hits="137" branch="false"/>
<line number="263" hits="135" branch="false"/>
<line number="264" hits="135" branch="false"/>
<line number="265" hits="135" branch="false"/>
<line number="266" hits="135" branch="false"/>
<line number="278" hits="34" branch="false"/>
<line number="279" hits="34" branch="false"/>
<line number="291" hits="33" branch="false"/>
<line number="292" hits="33" branch="false"/>
<line number="303" hits="81" 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="81" branch="false"/>
<line number="344" hits="81" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="37" branch="false"/>
<line number="346" hits="37" branch="false"/>
<line number="348" hits="81" branch="false"/>
<line number="349" hits="81" branch="false"/>
<line number="351" hits="5000404" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="352" hits="5000323" branch="false"/>
<line number="353" hits="5000323" branch="false"/>
<line number="355" hits="81" branch="false"/>
<line number="359" 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="372" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="16" branch="false"/>
<line number="375" hits="17" branch="false"/>
<line number="388" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="390" hits="13" branch="false"/>
<line number="392" hits="17" branch="false"/>
<line number="401" hits="1" branch="false"/>
<line number="413" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="14" branch="false"/>
<line number="415" hits="14" 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="32" branch="false"/>
<line number="50" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="1" branch="false"/>
<line number="53" hits="31" branch="false"/>
<line number="54" hits="31" branch="false"/>
<line number="55" hits="31" branch="false"/>
<line number="56" hits="31" branch="false"/>
<line number="57" hits="31" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="28" branch="false"/>
</lines>
</method>
<method name="getIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="29" 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="28" 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="84" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="32" branch="false"/>
<line number="50" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="1" branch="false"/>
<line number="53" hits="31" branch="false"/>
<line number="54" hits="31" branch="false"/>
<line number="55" hits="31" branch="false"/>
<line number="56" hits="31" branch="false"/>
<line number="57" hits="31" branch="false"/>
<line number="60" hits="84" branch="false"/>
<line number="64" hits="28" branch="false"/>
<line number="68" hits="29" branch="false"/>
<line number="72" hits="28" 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="2" 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="2" 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="2" branch="false"/>
<line number="39" hits="2" 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="28" branch="false"/>
<line number="44" hits="28" branch="false"/>
<line number="45" hits="28" branch="false"/>
<line number="46" hits="28" 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="20" 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="1" branch="false"/>
<line number="348" hits="19" branch="false"/>
</lines>
</method>
<method name="getFormatClassNames" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="6" 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="14" branch="false"/>
<line number="188" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="189" hits="14" branch="false"/>
<line number="190" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="1" branch="false"/>
<line number="197" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="198" hits="13" branch="false"/>
<line number="199" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="6" branch="false"/>
<line number="204" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="206" hits="7" branch="false"/>
<line number="209" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="2" branch="false"/>
<line number="214" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="216" hits="1" branch="false"/>
<line number="218" hits="1" branch="false"/>
<line number="222" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="223" hits="10" branch="false"/>
<line number="226" hits="13" 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="2" branch="false"/>
<line number="283" hits="2" branch="false"/>
<line number="284" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="289" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="2" branch="false"/>
<line number="291" hits="2" branch="false"/>
<line number="294" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="295" hits="2" branch="false"/>
<line number="296" hits="2" branch="false"/>
<line number="299" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
<line number="304" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="305" hits="2" branch="false"/>
<line number="306" hits="2" branch="false"/>
<line number="309" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="1" branch="false"/>
<line number="311" hits="1" branch="false"/>
<line number="314" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="315" hits="1" branch="false"/>
<line number="316" hits="1" branch="false"/>
<line number="319" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="1" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="324" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="325" hits="1" branch="false"/>
<line number="328" hits="1" branch="false"/>
<line number="330" hits="1" 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="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="116" hits="1" branch="false"/>
<line number="119" hits="14" branch="false"/>
<line number="120" hits="14" branch="false"/>
<line number="125" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="6" branch="false"/>
<line number="129" hits="6" branch="false"/>
<line number="131" 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="132" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="6" 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="140" hits="8" branch="false"/>
<line number="143" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="9" branch="false"/>
<line number="148" hits="13" branch="false"/>
</lines>
</method>
<method name="getSearchPackages" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="1" 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="21" branch="false"/>
<line number="336" hits="17" branch="false"/>
<line number="339" hits="17" 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="9" branch="false"/>
<line number="352" hits="9" 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="2" branch="false"/>
<line number="83" hits="2" 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="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="28" branch="false"/>
<line number="44" hits="28" branch="false"/>
<line number="45" hits="28" branch="false"/>
<line number="46" hits="28" branch="false"/>
<line number="66" hits="6" branch="false"/>
<line number="82" hits="2" branch="false"/>
<line number="83" hits="2" branch="false"/>
<line number="97" hits="1" branch="false"/>
<line number="111" hits="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
<line number="115" hits="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="116" hits="1" branch="false"/>
<line number="119" hits="14" branch="false"/>
<line number="120" hits="14" branch="false"/>
<line number="125" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="6" branch="false"/>
<line number="129" hits="6" branch="false"/>
<line number="131" 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="132" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="6" 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="140" hits="8" branch="false"/>
<line number="143" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="9" branch="false"/>
<line number="148" hits="13" branch="false"/>
<line number="184" hits="14" branch="false"/>
<line number="188" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="189" hits="14" branch="false"/>
<line number="190" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="1" branch="false"/>
<line number="197" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="198" hits="13" branch="false"/>
<line number="199" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="6" branch="false"/>
<line number="204" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="206" hits="7" branch="false"/>
<line number="209" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="2" branch="false"/>
<line number="214" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="216" hits="1" branch="false"/>
<line number="218" hits="1" branch="false"/>
<line number="222" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="223" hits="10" branch="false"/>
<line number="226" hits="13" branch="false"/>
<line number="282" hits="2" branch="false"/>
<line number="283" hits="2" branch="false"/>
<line number="284" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="289" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="2" branch="false"/>
<line number="291" hits="2" branch="false"/>
<line number="294" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="295" hits="2" branch="false"/>
<line number="296" hits="2" branch="false"/>
<line number="299" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
<line number="304" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="305" hits="2" branch="false"/>
<line number="306" hits="2" branch="false"/>
<line number="309" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="1" branch="false"/>
<line number="311" hits="1" branch="false"/>
<line number="314" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="315" hits="1" branch="false"/>
<line number="316" hits="1" branch="false"/>
<line number="319" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="1" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="324" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="325" hits="1" branch="false"/>
<line number="328" hits="1" branch="false"/>
<line number="330" hits="1" branch="false"/>
<line number="335" hits="21" branch="false"/>
<line number="336" hits="17" branch="false"/>
<line number="339" hits="17" branch="false"/>
<line number="343" hits="20" 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="1" branch="false"/>
<line number="348" hits="19" branch="false"/>
<line number="351" hits="9" branch="false"/>
<line number="352" hits="9" 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="5" 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="5" 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="5" branch="false"/>
<line number="39" hits="5" 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="16" branch="false"/>
<line number="31" hits="1" branch="false"/>
<line number="36" hits="1" branch="false"/>
<line number="41" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;ILjava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="3" branch="false"/>
<line number="46" hits="3" branch="false"/>
<line number="47" hits="3" 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="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="55" hits="1" branch="false"/>
<line number="58" hits="13" branch="false"/>
<line number="59" hits="7" branch="false"/>
<line number="60" hits="7" branch="false"/>
</lines>
</method>
<method name="getHashFormatClass" signature="()Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="6" 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="16" branch="false"/>
<line number="31" hits="1" branch="false"/>
<line number="36" hits="1" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="45" hits="3" branch="false"/>
<line number="46" hits="3" branch="false"/>
<line number="47" hits="3" branch="false"/>
<line number="50" hits="6" branch="false"/>
<line number="54" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="55" hits="1" branch="false"/>
<line number="58" hits="13" branch="false"/>
<line number="59" hits="7" branch="false"/>
<line number="60" hits="7" 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="37" branch="false"/>
<line number="94" hits="37" 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="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="2" branch="false"/>
<line number="105" hits="11" branch="false"/>
<line number="106" hits="11" branch="false"/>
<line number="107" hits="11" branch="false"/>
<line number="108" hits="11" branch="false"/>
<line number="110" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="8" branch="false"/>
<line number="114" hits="11" branch="false"/>
<line number="115" hits="11" branch="false"/>
<line number="117" hits="11" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="1" 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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="122" hits="1" branch="false"/>
<line number="124" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="126" hits="1" branch="false"/>
<line number="127" hits="1" branch="false"/>
<line number="130" hits="8" branch="false"/>
<line number="131" hits="8" branch="false"/>
<line number="134" hits="8" branch="false"/>
<line number="135" hits="8" branch="false"/>
<line number="137" hits="8" branch="false"/>
<line number="138" hits="8" branch="false"/>
<line number="139" hits="8" branch="false"/>
<line number="141" hits="8" branch="false"/>
<line number="142" hits="8" branch="false"/>
<line number="144" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="7" branch="false"/>
<line number="146" hits="7" branch="false"/>
<line number="151" hits="8" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="153" hits="1" branch="false"/>
<line number="154" hits="1" branch="false"/>
<line number="155" hits="7" branch="false"/>
<line number="157" hits="7" branch="false"/>
<line number="158" hits="7" branch="false"/>
<line number="159" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="6" branch="false"/>
<line number="162" hits="7" branch="false"/>
<line number="164" hits="7" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="93" hits="37" branch="false"/>
<line number="94" hits="37" branch="false"/>
<line number="97" hits="1" branch="false"/>
<line number="101" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="2" branch="false"/>
<line number="105" hits="11" branch="false"/>
<line number="106" hits="11" branch="false"/>
<line number="107" hits="11" branch="false"/>
<line number="108" hits="11" branch="false"/>
<line number="110" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="8" branch="false"/>
<line number="114" hits="11" branch="false"/>
<line number="115" hits="11" branch="false"/>
<line number="117" hits="11" branch="false"/>
<line number="121" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="122" hits="1" branch="false"/>
<line number="124" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="126" hits="1" branch="false"/>
<line number="127" hits="1" branch="false"/>
<line number="130" hits="8" branch="false"/>
<line number="131" hits="8" branch="false"/>
<line number="134" hits="8" branch="false"/>
<line number="135" hits="8" branch="false"/>
<line number="137" hits="8" branch="false"/>
<line number="138" hits="8" branch="false"/>
<line number="139" hits="8" branch="false"/>
<line number="141" hits="8" branch="false"/>
<line number="142" hits="8" branch="false"/>
<line number="144" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="7" branch="false"/>
<line number="146" hits="7" branch="false"/>
<line number="151" hits="8" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="153" hits="1" branch="false"/>
<line number="154" hits="1" branch="false"/>
<line number="155" hits="7" branch="false"/>
<line number="157" hits="7" branch="false"/>
<line number="158" hits="7" branch="false"/>
<line number="159" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="6" branch="false"/>
<line number="162" hits="7" branch="false"/>
<line number="164" hits="7" 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.30851063829787234" 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.04" 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="2" 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="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="2" 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="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.5" 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="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="177" hits="1" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="182" hits="1" 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="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="7" 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="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="139" hits="2" branch="false"/>
<line number="142" hits="5" 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/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="loadFromClassPath" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="159" hits="7" branch="false"/>
<line number="160" hits="7" 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="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="93" hits="2" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
<line number="98" hits="2" 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="2" 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="7" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="1" 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/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="93" hits="2" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
<line number="98" hits="2" 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="2" branch="false"/>
<line number="125" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="7" 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="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="139" hits="2" branch="false"/>
<line number="142" hits="5" 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="7" branch="false"/>
<line number="160" hits="7" branch="false"/>
<line number="164" hits="7" branch="false"/>
<line number="175" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="177" hits="1" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="182" hits="1" 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="1" branch="false"/>
<line number="37" hits="1" 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="1" branch="false"/>
<line number="46" hits="1" 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="1" branch="false"/>
<line number="65" hits="1" 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="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="1" branch="false"/>
<line number="37" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" 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.1836734693877551" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="56" hits="4" 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="4" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="56" hits="4" 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="4" branch="false"/>
</lines>
</method>
<method name="getInstance" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="38" hits="2" branch="false"/>
<line number="40" hits="2" branch="false"/>
<line number="42" hits="2" branch="false"/>
<line number="43" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="44" hits="2" 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="2" branch="false"/>
<line number="62" hits="2" 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="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="4" branch="false"/>
<line number="37" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="38" hits="2" branch="false"/>
<line number="40" hits="2" branch="false"/>
<line number="42" hits="2" branch="false"/>
<line number="43" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="44" hits="2" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="53" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.07317073170731707" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="4" 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="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="1" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="4" 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="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.6150341685649203" 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.25675675675675674" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="98" hits="2" branch="false"/>
<line number="99" hits="2" branch="false"/>
<line number="100" hits="2" 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="2" branch="false"/>
<line number="383" hits="2" branch="false"/>
<line number="385" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="386" hits="0" branch="false"/>
<line number="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="2" branch="false"/>
<line number="392" hits="2" 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/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="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="2" branch="false"/>
<line number="241" hits="2" branch="false"/>
<line number="242" hits="2" 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="2" branch="false"/>
<line number="203" hits="2" branch="false"/>
</lines>
</method>
<method name="setEncryptionCipherKey" signature="([B)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>
<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="1" branch="false"/>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="98" hits="2" branch="false"/>
<line number="99" hits="2" branch="false"/>
<line number="100" hits="2" 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="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="202" hits="2" branch="false"/>
<line number="203" hits="2" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="240" hits="2" branch="false"/>
<line number="241" hits="2" branch="false"/>
<line number="242" hits="2" branch="false"/>
<line number="266" 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="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="2" branch="false"/>
<line number="383" hits="2" branch="false"/>
<line number="385" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="386" hits="0" branch="false"/>
<line number="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="2" branch="false"/>
<line number="392" hits="2" 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="36" branch="false"/>
<line number="58" hits="36" branch="false"/>
<line number="59" hits="36" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="96" hits="32" branch="false"/>
<line number="97" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="98" hits="32" branch="false"/>
<line number="100" hits="32" 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="21" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="19" branch="false"/>
<line number="111" hits="19" branch="false"/>
<line number="112" hits="19" branch="false"/>
<line number="113" hits="19" 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="27" 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="36" branch="false"/>
<line number="58" hits="36" branch="false"/>
<line number="59" hits="36" branch="false"/>
<line number="71" hits="27" 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="32" branch="false"/>
<line number="97" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="98" hits="32" branch="false"/>
<line number="100" hits="32" branch="false"/>
<line number="106" hits="21" branch="false"/>
<line number="110" hits="19" branch="false"/>
<line number="111" hits="19" branch="false"/>
<line number="112" hits="19" branch="false"/>
<line number="113" hits="19" 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="36" branch="false"/>
<line number="60" hits="36" branch="false"/>
<line number="61" hits="36" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="100" hits="32" branch="false"/>
<line number="101" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="32" branch="false"/>
<line number="104" hits="32" 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="19" branch="false"/>
<line number="108" hits="19" branch="false"/>
<line number="109" hits="19" branch="false"/>
<line number="110" hits="19" 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="19" 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="21" 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="2" 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="36" branch="false"/>
<line number="60" hits="36" branch="false"/>
<line number="61" hits="36" branch="false"/>
<line number="70" hits="19" 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="32" branch="false"/>
<line number="101" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="32" branch="false"/>
<line number="104" hits="32" branch="false"/>
<line number="107" hits="19" branch="false"/>
<line number="108" hits="19" branch="false"/>
<line number="109" hits="19" branch="false"/>
<line number="110" hits="19" branch="false"/>
<line number="113" hits="2" 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="21" 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="36" branch="false"/>
<line number="48" hits="36" 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="19" branch="false"/>
<line number="88" hits="19" branch="false"/>
<line number="89" hits="19" 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="91" 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="2" branch="false"/>
<line number="72" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="36" branch="false"/>
<line number="48" hits="36" branch="false"/>
<line number="56" hits="91" branch="false"/>
<line number="71" hits="2" branch="false"/>
<line number="72" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="87" hits="19" branch="false"/>
<line number="88" hits="19" branch="false"/>
<line number="89" hits="19" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSecurityManager" filename="org/apache/shiro/mgt/DefaultSecurityManager.java" line-rate="0.5906432748538012" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="36" branch="false"/>
<line number="84" hits="36" branch="false"/>
<line number="85" hits="36" branch="false"/>
<line number="86" hits="36" 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="8" branch="false"/>
<line number="95" hits="8" branch="false"/>
<line number="96" hits="8" 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="9" branch="false"/>
<line number="300" hits="9" 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="46" 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="17" branch="false"/>
<line number="177" hits="17" branch="false"/>
<line number="178" hits="17" branch="false"/>
<line number="179" hits="17" branch="false"/>
<line number="180" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="17" branch="false"/>
<line number="183" hits="17" 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="46" branch="false"/>
<line number="333" hits="46" branch="false"/>
<line number="338" hits="46" branch="false"/>
<line number="342" hits="46" branch="false"/>
<line number="344" hits="46" branch="false"/>
<line number="350" hits="46" branch="false"/>
<line number="352" hits="46" 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="17" 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="9" branch="false"/>
<line number="398" hits="9" 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="46" 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="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="42" branch="false"/>
<line number="413" hits="42" branch="false"/>
<line number="415" hits="4" branch="false"/>
<line number="416" hits="4" branch="false"/>
<line number="417" hits="4" 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="59" 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="29" branch="false"/>
<line number="602" hits="29" 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="29" 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="46" branch="false"/>
<line number="463" hits="46" 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="46" 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="46" 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="21" branch="false"/>
<line number="271" hits="4" branch="false"/>
<line number="273" hits="4" 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="4" branch="false"/>
<line number="280" hits="4" branch="false"/>
<line number="281" hits="17" branch="false"/>
<line number="283" hits="17" branch="false"/>
<line number="285" hits="17" branch="false"/>
<line number="287" hits="17" 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="9" 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="9" branch="false"/>
<line number="547" hits="9" branch="false"/>
<line number="548" hits="9" 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="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="8" branch="false"/>
<line number="552" hits="8" branch="false"/>
<line number="553" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="554" hits="8" branch="false"/>
<line number="559" hits="9" 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="9" 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="9" branch="false"/>
<line number="575" hits="0" branch="false"/>
<line number="576" hits="9" 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="4" branch="false"/>
<line number="296" hits="4" 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="17" branch="false"/>
<line number="292" hits="17" 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="4" branch="false"/>
<line number="226" hits="4" 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="4" branch="false"/>
</lines>
</method>
<method name="rememberMeLogout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.3333333333333333" branch-rate="0.16666666666666666">
<lines>
<line number="241" hits="9" branch="false"/>
<line number="242" hits="9" 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="250" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="9" 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.45454545454545453" branch-rate="0.3333333333333333">
<lines>
<line number="203" hits="17" branch="false"/>
<line number="204" hits="17" 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="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="17" branch="false"/>
<line number="222" hits="17" 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="46" branch="false"/>
<line number="455" hits="46" 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="46" 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="46" branch="false"/>
<line number="489" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="490" hits="29" branch="false"/>
<line number="492" hits="29" branch="false"/>
<line number="494" hits="29" 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="29" branch="false"/>
<line number="520" hits="46" 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="46" 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="46" branch="false"/>
<line number="443" hits="46" 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="46" branch="false"/>
<line number="450" hits="46" 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="46" branch="false"/>
<line number="384" hits="46" 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="9" branch="false"/>
<line number="580" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="581" hits="9" branch="false"/>
<line number="583" hits="9" 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="1" branch="false"/>
<line number="83" hits="36" branch="false"/>
<line number="84" hits="36" branch="false"/>
<line number="85" hits="36" branch="false"/>
<line number="86" hits="36" branch="false"/>
<line number="94" hits="8" branch="false"/>
<line number="95" hits="8" branch="false"/>
<line number="96" hits="8" 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="46" 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="59" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="17" branch="false"/>
<line number="176" hits="17" branch="false"/>
<line number="177" hits="17" branch="false"/>
<line number="178" hits="17" branch="false"/>
<line number="179" hits="17" branch="false"/>
<line number="180" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="17" branch="false"/>
<line number="183" hits="17" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="203" hits="17" branch="false"/>
<line number="204" hits="17" 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="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="17" branch="false"/>
<line number="222" hits="17" branch="false"/>
<line number="225" hits="4" branch="false"/>
<line number="226" hits="4" 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="4" branch="false"/>
<line number="241" hits="9" branch="false"/>
<line number="242" hits="9" 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="250" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="9" branch="false"/>
<line number="270" hits="21" branch="false"/>
<line number="271" hits="4" branch="false"/>
<line number="273" hits="4" 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="4" branch="false"/>
<line number="280" hits="4" branch="false"/>
<line number="281" hits="17" branch="false"/>
<line number="283" hits="17" branch="false"/>
<line number="285" hits="17" branch="false"/>
<line number="287" hits="17" branch="false"/>
<line number="291" hits="17" branch="false"/>
<line number="292" hits="17" branch="false"/>
<line number="295" hits="4" branch="false"/>
<line number="296" hits="4" branch="false"/>
<line number="299" hits="9" branch="false"/>
<line number="300" hits="9" branch="false"/>
<line number="303" hits="46" branch="false"/>
<line number="330" hits="46" branch="false"/>
<line number="333" hits="46" branch="false"/>
<line number="338" hits="46" branch="false"/>
<line number="342" hits="46" branch="false"/>
<line number="344" hits="46" branch="false"/>
<line number="350" hits="46" branch="false"/>
<line number="352" hits="46" branch="false"/>
<line number="369" hits="46" branch="false"/>
<line number="383" hits="46" branch="false"/>
<line number="384" hits="46" branch="false"/>
<line number="397" hits="9" branch="false"/>
<line number="398" hits="9" branch="false"/>
<line number="411" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="42" branch="false"/>
<line number="413" hits="42" branch="false"/>
<line number="415" hits="4" branch="false"/>
<line number="416" hits="4" branch="false"/>
<line number="417" hits="4" branch="false"/>
<line number="435" hits="46" 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="46" branch="false"/>
<line number="443" hits="46" 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="46" branch="false"/>
<line number="450" hits="46" branch="false"/>
<line number="454" hits="46" branch="false"/>
<line number="455" hits="46" 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="46" branch="false"/>
<line number="462" hits="46" branch="false"/>
<line number="463" hits="46" 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="46" branch="false"/>
<line number="487" hits="46" branch="false"/>
<line number="489" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="490" hits="29" branch="false"/>
<line number="492" hits="29" branch="false"/>
<line number="494" hits="29" 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="29" branch="false"/>
<line number="520" hits="46" 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="9" 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="9" branch="false"/>
<line number="547" hits="9" branch="false"/>
<line number="548" hits="9" 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="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="8" branch="false"/>
<line number="552" hits="8" branch="false"/>
<line number="553" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="554" hits="8" branch="false"/>
<line number="559" hits="9" 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="9" 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="9" branch="false"/>
<line number="575" hits="0" branch="false"/>
<line number="576" hits="9" branch="false"/>
<line number="579" hits="9" branch="false"/>
<line number="580" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="581" hits="9" branch="false"/>
<line number="583" hits="9" branch="false"/>
<line number="597" hits="0" branch="false"/>
<line number="598" hits="0" branch="false"/>
<line number="601" hits="29" branch="false"/>
<line number="602" hits="29" 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="29" 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="54" branch="false"/>
<line number="36" hits="54" branch="false"/>
</lines>
</method>
<method name="isSessionStorageEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="50" 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="50" 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="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="54" branch="false"/>
<line number="36" hits="54" branch="false"/>
<line number="63" hits="50" 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="50" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSubjectDAO" filename="org/apache/shiro/mgt/DefaultSubjectDAO.java" line-rate="0.9642857142857143" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="54" branch="false"/>
<line number="93" hits="54" branch="false"/>
<line number="94" hits="54" 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="11" branch="false"/>
<line number="282" hits="11" 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="53" 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="51" 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="52" branch="false"/>
<line number="237" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="31" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="1" branch="false"/>
<line number="240" hits="1" branch="false"/>
<line number="244" hits="21" branch="false"/>
<line number="246" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="19" 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="19" branch="false"/>
<line number="252" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="1" branch="false"/>
<line number="259" hits="52" branch="false"/>
</lines>
</method>
<method name="mergePrincipals" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.9090909090909091" branch-rate="0.8333333333333334">
<lines>
<line number="180" hits="53" branch="false"/>
<line number="187" hits="53" 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="1" branch="false"/>
<line number="190" hits="1" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="1" branch="false"/>
<line number="196" hits="53" 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="52" branch="false"/>
<line number="200" hits="53" branch="false"/>
<line number="202" hits="53" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="18" branch="false"/>
<line number="205" hits="18" branch="false"/>
<line number="209" hits="5" branch="false"/>
<line number="212" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="214" hits="1" branch="false"/>
<line number="218" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="3" branch="false"/>
<line number="224" hits="53" 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="11" branch="false"/>
<line number="269" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="270" hits="10" branch="false"/>
<line number="271" hits="10" branch="false"/>
<line number="273" hits="11" 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="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="47" branch="false"/>
<line number="149" hits="1" branch="false"/>
<line number="153" hits="48" 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="47" branch="false"/>
<line number="167" hits="47" branch="false"/>
<line number="168" hits="47" 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="1" branch="false"/>
<line number="133" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="84" hits="1" branch="false"/>
<line number="91" hits="54" branch="false"/>
<line number="93" hits="54" branch="false"/>
<line number="94" hits="54" branch="false"/>
<line number="108" hits="51" branch="false"/>
<line number="120" hits="53" branch="false"/>
<line number="132" hits="1" branch="false"/>
<line number="133" hits="1" branch="false"/>
<line number="146" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="47" branch="false"/>
<line number="149" hits="1" branch="false"/>
<line number="153" hits="48" branch="false"/>
<line number="166" hits="47" branch="false"/>
<line number="167" hits="47" branch="false"/>
<line number="168" hits="47" branch="false"/>
<line number="180" hits="53" branch="false"/>
<line number="187" hits="53" 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="1" branch="false"/>
<line number="190" hits="1" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="1" branch="false"/>
<line number="196" hits="53" 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="52" branch="false"/>
<line number="200" hits="53" branch="false"/>
<line number="202" hits="53" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="18" branch="false"/>
<line number="205" hits="18" branch="false"/>
<line number="209" hits="5" branch="false"/>
<line number="212" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="214" hits="1" branch="false"/>
<line number="218" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="3" branch="false"/>
<line number="224" hits="53" branch="false"/>
<line number="235" hits="52" branch="false"/>
<line number="237" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="31" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="1" branch="false"/>
<line number="240" hits="1" branch="false"/>
<line number="244" hits="21" branch="false"/>
<line number="246" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="19" 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="19" branch="false"/>
<line number="252" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="1" branch="false"/>
<line number="259" hits="52" branch="false"/>
<line number="268" hits="11" branch="false"/>
<line number="269" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="270" hits="10" branch="false"/>
<line number="271" hits="10" branch="false"/>
<line number="273" hits="11" branch="false"/>
<line number="281" hits="11" branch="false"/>
<line number="282" hits="11" 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="36" branch="false"/>
<line number="37" hits="36" 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="46" branch="false"/>
<line number="41" hits="46" branch="false"/>
<line number="42" hits="46" branch="false"/>
<line number="43" hits="46" branch="false"/>
<line number="44" hits="46" branch="false"/>
<line number="45" hits="46" branch="false"/>
<line number="47" hits="46" 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="36" branch="false"/>
<line number="37" hits="36" branch="false"/>
<line number="40" hits="46" branch="false"/>
<line number="41" hits="46" branch="false"/>
<line number="42" hits="46" branch="false"/>
<line number="43" hits="46" branch="false"/>
<line number="44" hits="46" branch="false"/>
<line number="45" hits="46" branch="false"/>
<line number="47" hits="46" 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="36" branch="false"/>
<line number="49" hits="36" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="2" branch="false"/>
<line number="128" hits="2" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="32" branch="false"/>
<line number="86" hits="32" branch="false"/>
</lines>
</method>
<method name="applyCacheManagerToRealms" signature="()V" line-rate="1.0" branch-rate="0.8">
<lines>
<line number="110" hits="34" branch="false"/>
<line number="111" hits="34" branch="false"/>
<line number="112" hits="34" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="119" hits="34" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="131" hits="19" branch="false"/>
<line number="132" hits="19" branch="false"/>
<line number="133" hits="19" branch="false"/>
<line number="134" hits="19" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="153" 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="12" 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="12" branch="false"/>
<line number="63" hits="12" branch="false"/>
<line number="64" hits="12" branch="false"/>
<line number="65" hits="12" 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="32" 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="32" 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="32" branch="false"/>
<line number="81" hits="32" branch="false"/>
<line number="82" hits="32" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="36" branch="false"/>
<line number="49" hits="36" branch="false"/>
<line number="59" hits="12" 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="12" branch="false"/>
<line number="63" hits="12" branch="false"/>
<line number="64" hits="12" branch="false"/>
<line number="65" hits="12" branch="false"/>
<line number="74" hits="32" 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="32" 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="32" branch="false"/>
<line number="81" hits="32" branch="false"/>
<line number="82" hits="32" branch="false"/>
<line number="85" hits="32" branch="false"/>
<line number="86" hits="32" branch="false"/>
<line number="94" hits="153" branch="false"/>
<line number="110" hits="34" branch="false"/>
<line number="111" hits="34" branch="false"/>
<line number="112" hits="34" 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="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="119" hits="34" branch="false"/>
<line number="127" hits="2" branch="false"/>
<line number="128" hits="2" branch="false"/>
<line number="131" hits="19" branch="false"/>
<line number="132" hits="19" branch="false"/>
<line number="133" hits="19" branch="false"/>
<line number="134" hits="19" 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="36" branch="false"/>
<line number="61" hits="36" branch="false"/>
<line number="62" hits="36" branch="false"/>
<line number="63" hits="36" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()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"/>
</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="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="38" branch="false"/>
<line number="118" hits="38" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="129" hits="19" branch="false"/>
<line number="130" hits="19" branch="false"/>
<line number="131" hits="19" branch="false"/>
<line number="132" hits="19" 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="112" 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="20" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="36" branch="false"/>
<line number="61" hits="36" branch="false"/>
<line number="62" hits="36" branch="false"/>
<line number="63" hits="36" 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="112" 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="115" hits="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="38" branch="false"/>
<line number="118" hits="38" branch="false"/>
<line number="121" hits="20" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="129" hits="19" branch="false"/>
<line number="130" hits="19" branch="false"/>
<line number="131" hits="19" branch="false"/>
<line number="132" hits="19" 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.825" 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="1" branch="false"/>
<line number="116" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="147" hits="80" branch="false"/>
<line number="148" hits="80" 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="1" branch="false"/>
<line number="156" hits="1" 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="1" branch="false"/>
<line number="152" hits="1" 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="82" branch="false"/>
<line number="159" hits="82" branch="false"/>
<line number="163" hits="82" branch="false"/>
<line number="165" hits="82" branch="false"/>
<line number="166" hits="82" branch="false"/>
<line number="167" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="81" branch="false"/>
<line number="171" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="172" hits="1" branch="false"/>
<line number="174" hits="82" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="82" branch="false"/>
<line number="177" hits="82" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="414" hits="6" branch="false"/>
<line number="415" hits="6" 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="30" branch="false"/>
<line number="596" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="597" hits="29" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="599" hits="4" branch="false"/>
<line number="600" hits="4" branch="false"/>
<line number="603" hits="1" branch="false"/>
<line number="607" hits="25" 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="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="507" hits="24" branch="false"/>
<line number="509" hits="24" branch="false"/>
<line number="512" hits="2" branch="false"/>
<line number="513" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="514" hits="2" branch="false"/>
<line number="515" hits="2" branch="false"/>
<line number="516" hits="2" branch="false"/>
<line number="518" hits="2" 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="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="681" hits="9" branch="false"/>
<line number="683" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="684" hits="1" branch="false"/>
<line number="685" hits="1" branch="false"/>
<line number="688" hits="9" 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="9" branch="false"/>
<line number="656" hits="9" branch="false"/>
<line number="657" hits="9" 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="75" 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="6" 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="1" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="4" branch="false"/>
<line number="457" hits="4" branch="false"/>
<line number="459" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="460" hits="4" branch="false"/>
<line number="461" hits="4" branch="false"/>
<line number="462" hits="4" branch="false"/>
<line number="466" hits="4" branch="false"/>
</lines>
</method>
<method name="getAuthenticationCacheName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="289" hits="6" 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="32" branch="false"/>
<line number="566" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="568" hits="30" branch="false"/>
<line number="569" hits="27" branch="false"/>
<line number="570" hits="27" 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="26" branch="false"/>
<line number="574" hits="2" branch="false"/>
<line number="577" hits="29" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="578" hits="28" branch="false"/>
<line number="580" hits="1" branch="false"/>
<line number="583" hits="26" branch="false"/>
</lines>
</method>
<method name="getAuthenticationTokenClass" signature="()Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="226" hits="24" 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="74" branch="false"/>
<line number="436" hits="74" branch="false"/>
<line number="437" hits="74" 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="4" branch="false"/>
<line number="440" hits="74" 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="32" branch="false"/>
<line number="481" hits="32" branch="false"/>
<line number="482" hits="32" 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="4" branch="false"/>
<line number="484" hits="4" branch="false"/>
<line number="485" hits="4" branch="false"/>
<line number="486" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="487" hits="2" branch="false"/>
<line number="489" hits="2" branch="false"/>
<line number="493" hits="32" 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="32" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="394" hits="25" branch="false"/>
<line number="395" hits="25" branch="false"/>
<line number="396" hits="24" branch="false"/>
</lines>
</method>
<method name="isAuthenticationCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="318" hits="100" 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="26" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="405" hits="30" 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="1" branch="false"/>
<line number="257" hits="1" 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="1" branch="false"/>
<line number="307" hits="1" branch="false"/>
</lines>
</method>
<method name="setAuthenticationCachingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="334" hits="4" branch="false"/>
<line number="335" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="4" branch="false"/>
<line number="338" hits="4" 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="14" branch="false"/>
<line number="240" hits="14" 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="116" branch="false"/>
<line number="209" hits="116" 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="23" branch="false"/>
<line number="342" hits="23" branch="false"/>
<line number="343" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="346" hits="23" branch="false"/>
<line number="348" hits="23" 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="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="114" hits="1" branch="false"/>
<line number="116" hits="1" branch="false"/>
<line number="147" hits="80" branch="false"/>
<line number="148" hits="80" branch="false"/>
<line number="151" hits="1" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="155" hits="1" branch="false"/>
<line number="156" hits="1" branch="false"/>
<line number="158" hits="82" branch="false"/>
<line number="159" hits="82" branch="false"/>
<line number="163" hits="82" branch="false"/>
<line number="165" hits="82" branch="false"/>
<line number="166" hits="82" branch="false"/>
<line number="167" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="81" branch="false"/>
<line number="171" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="172" hits="1" branch="false"/>
<line number="174" hits="82" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="82" branch="false"/>
<line number="177" hits="82" branch="false"/>
<line number="194" hits="32" branch="false"/>
<line number="208" hits="116" branch="false"/>
<line number="209" hits="116" branch="false"/>
<line number="226" hits="24" branch="false"/>
<line number="239" hits="14" branch="false"/>
<line number="240" hits="14" branch="false"/>
<line number="256" hits="1" branch="false"/>
<line number="257" hits="1" branch="false"/>
<line number="270" hits="75" branch="false"/>
<line number="289" hits="6" branch="false"/>
<line number="306" hits="1" branch="false"/>
<line number="307" hits="1" branch="false"/>
<line number="318" hits="100" 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="4" branch="false"/>
<line number="335" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="4" branch="false"/>
<line number="338" hits="4" branch="false"/>
<line number="341" hits="23" branch="false"/>
<line number="342" hits="23" branch="false"/>
<line number="343" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="346" hits="23" branch="false"/>
<line number="348" hits="23" branch="false"/>
<line number="366" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="394" hits="25" branch="false"/>
<line number="395" hits="25" branch="false"/>
<line number="396" hits="24" branch="false"/>
<line number="405" hits="30" branch="false"/>
<line number="414" hits="6" branch="false"/>
<line number="415" hits="6" branch="false"/>
<line number="435" hits="74" branch="false"/>
<line number="436" hits="74" branch="false"/>
<line number="437" hits="74" 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="4" branch="false"/>
<line number="440" hits="74" branch="false"/>
<line number="453" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="4" branch="false"/>
<line number="457" hits="4" branch="false"/>
<line number="459" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="460" hits="4" branch="false"/>
<line number="461" hits="4" branch="false"/>
<line number="462" hits="4" branch="false"/>
<line number="466" hits="4" branch="false"/>
<line number="479" hits="32" branch="false"/>
<line number="481" hits="32" branch="false"/>
<line number="482" hits="32" 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="4" branch="false"/>
<line number="484" hits="4" branch="false"/>
<line number="485" hits="4" branch="false"/>
<line number="486" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="487" hits="2" branch="false"/>
<line number="489" hits="2" branch="false"/>
<line number="493" hits="32" branch="false"/>
<line number="506" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="507" hits="24" branch="false"/>
<line number="509" hits="24" branch="false"/>
<line number="512" hits="2" branch="false"/>
<line number="513" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="514" hits="2" branch="false"/>
<line number="515" hits="2" branch="false"/>
<line number="516" hits="2" branch="false"/>
<line number="518" hits="2" branch="false"/>
<line number="536" hits="26" branch="false"/>
<line number="565" hits="32" branch="false"/>
<line number="566" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="568" hits="30" branch="false"/>
<line number="569" hits="27" branch="false"/>
<line number="570" hits="27" 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="26" branch="false"/>
<line number="574" hits="2" branch="false"/>
<line number="577" hits="29" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="578" hits="28" branch="false"/>
<line number="580" hits="1" branch="false"/>
<line number="583" hits="26" branch="false"/>
<line number="595" hits="30" branch="false"/>
<line number="596" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="597" hits="29" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="599" hits="4" branch="false"/>
<line number="600" hits="4" branch="false"/>
<line number="603" hits="1" branch="false"/>
<line number="607" hits="25" branch="false"/>
<line number="624" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="642" hits="1" branch="false"/>
<line number="655" hits="9" branch="false"/>
<line number="656" hits="9" branch="false"/>
<line number="657" hits="9" branch="false"/>
<line number="680" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="681" hits="9" branch="false"/>
<line number="683" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="684" hits="1" branch="false"/>
<line number="685" hits="1" branch="false"/>
<line number="688" hits="9" 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="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="68" branch="false"/>
<line number="92" hits="68" 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="68" branch="false"/>
<line number="104" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="105" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="107" hits="68" branch="false"/>
<line number="108" hits="68" 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="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="67" branch="false"/>
<line number="115" hits="68" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="1" branch="false"/>
<line number="227" hits="1" 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="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="546" hits="4" branch="false"/>
<line number="547" hits="4" branch="false"/>
<line number="549" hits="3" 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="5" branch="false"/>
<line number="536" hits="5" branch="false"/>
<line number="537" hits="3" 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="6" branch="false"/>
<line number="541" hits="6" branch="false"/>
<line number="542" hits="3" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="566" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="567" hits="1" 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="1" branch="false"/>
<line number="561" hits="1" 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="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="553" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="554" hits="3" branch="false"/>
<line number="557" hits="1" 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="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="628" hits="2" branch="false"/>
<line number="629" hits="2" branch="false"/>
<line number="631" hits="2" 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="1" branch="false"/>
<line number="623" hits="1" 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="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="644" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="645" hits="3" branch="false"/>
<line number="646" hits="2" branch="false"/>
<line number="648" hits="1" 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="2" branch="false"/>
<line number="635" hits="2" branch="false"/>
<line number="636" hits="1" 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="1" branch="false"/>
<line number="640" hits="1" 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="8" 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="8" branch="false"/>
<line number="384" hits="8" 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="8" 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="8" branch="false"/>
<line number="663" hits="8" branch="false"/>
<line number="664" hits="8" 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="92" 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="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="44" branch="false"/>
<line number="237" hits="44" branch="false"/>
<line number="239" hits="44" 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="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="44" branch="false"/>
<line number="254" hits="44" 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="55" 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="55" branch="false"/>
<line number="318" hits="55" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="55" branch="false"/>
<line number="322" hits="55" branch="false"/>
<line number="323" hits="55" 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="55" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="341" hits="55" branch="false"/>
<line number="343" hits="55" 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="55" 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="92" branch="false"/>
<line number="259" 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="260" hits="44" branch="false"/>
<line number="262" hits="92" 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="51" 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="22" branch="false"/>
<line number="405" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="12" branch="false"/>
<line number="407" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="408" hits="6" branch="false"/>
<line number="410" hits="12" branch="false"/>
<line number="411" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="2" branch="false"/>
<line number="415" hits="12" branch="false"/>
<line number="416" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="417" hits="4" branch="false"/>
<line number="421" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="422" hits="10" branch="false"/>
<line number="424" hits="12" 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="19" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="612" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="613" hits="2" 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="2" branch="false"/>
<line number="618" hits="1" 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="2" branch="false"/>
<line number="607" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</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="34" 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="28" branch="false"/>
<line number="574" hits="28" 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="1" branch="false"/>
<line number="583" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="584" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="isAuthorizationCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="157" hits="92" 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="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="495" hits="2" branch="false"/>
<line number="496" hits="2" branch="false"/>
<line number="497" hits="2" branch="false"/>
<line number="498" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="499" hits="4" branch="false"/>
<line number="500" hits="4" branch="false"/>
<line number="501" hits="2" branch="false"/>
<line number="502" hits="0" branch="false"/>
<line number="504" hits="2" 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="22" branch="false"/>
<line number="469" hits="22" 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="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="471" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="472" hits="10" branch="false"/>
<line number="474" hits="11" branch="false"/>
<line number="476" hits="12" 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="8" branch="false"/>
<line number="458" hits="8" 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="2" branch="false"/>
<line number="489" hits="2" 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="9" branch="false"/>
<line number="463" hits="9" 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="1" branch="false"/>
<line number="481" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="482" hits="2" branch="false"/>
<line number="484" hits="1" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="525" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="526" hits="2" 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="2" branch="false"/>
<line number="531" hits="1" 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="3" branch="false"/>
<line number="520" hits="3" 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="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="509" hits="2" branch="false"/>
<line number="510" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="511" hits="4" branch="false"/>
<line number="513" hits="2" 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="28" branch="false"/>
<line number="220" hits="28" branch="false"/>
<line number="221" hits="28" 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="12" branch="false"/>
<line number="430" hits="12" branch="false"/>
<line number="431" 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="432" hits="2" branch="false"/>
<line number="433" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="434" hits="2" branch="false"/>
<line number="435" hits="2" branch="false"/>
<line number="436" hits="2" branch="false"/>
<line number="438" hits="12" 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="12" branch="false"/>
<line number="443" hits="12" branch="false"/>
<line number="444" 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="445" hits="4" branch="false"/>
<line number="446" hits="4" 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="448" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="4" branch="false"/>
<line number="451" hits="4" branch="false"/>
<line number="453" hits="12" 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="20" branch="false"/>
<line number="123" hits="20" branch="false"/>
<line number="124" 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="127" hits="20" branch="false"/>
<line number="129" hits="20" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
</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="6" branch="false"/>
<line number="191" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="63" hits="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="91" hits="68" branch="false"/>
<line number="92" hits="68" 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="68" branch="false"/>
<line number="104" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="105" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="107" hits="68" branch="false"/>
<line number="108" hits="68" 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="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="67" branch="false"/>
<line number="115" hits="68" branch="false"/>
<line number="122" hits="20" branch="false"/>
<line number="123" hits="20" branch="false"/>
<line number="124" 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="127" hits="20" branch="false"/>
<line number="129" hits="20" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="136" hits="92" 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="92" 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="51" branch="false"/>
<line number="181" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="186" hits="19" branch="false"/>
<line number="190" hits="6" branch="false"/>
<line number="191" hits="6" branch="false"/>
<line number="218" hits="28" branch="false"/>
<line number="220" hits="28" branch="false"/>
<line number="221" hits="28" branch="false"/>
<line number="224" hits="1" branch="false"/>
<line number="226" hits="1" branch="false"/>
<line number="227" hits="1" branch="false"/>
<line number="231" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="44" branch="false"/>
<line number="237" hits="44" branch="false"/>
<line number="239" hits="44" 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="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="44" branch="false"/>
<line number="254" hits="44" branch="false"/>
<line number="258" hits="92" branch="false"/>
<line number="259" 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="260" hits="44" branch="false"/>
<line number="262" hits="92" branch="false"/>
<line number="312" hits="55" 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="55" branch="false"/>
<line number="318" hits="55" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="55" branch="false"/>
<line number="322" hits="55" branch="false"/>
<line number="323" hits="55" 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="55" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="341" hits="55" branch="false"/>
<line number="343" hits="55" 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="55" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="378" hits="8" 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="8" branch="false"/>
<line number="384" hits="8" 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="8" branch="false"/>
<line number="403" hits="22" branch="false"/>
<line number="405" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="12" branch="false"/>
<line number="407" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="408" hits="6" branch="false"/>
<line number="410" hits="12" branch="false"/>
<line number="411" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="2" branch="false"/>
<line number="415" hits="12" branch="false"/>
<line number="416" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="417" hits="4" branch="false"/>
<line number="421" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="422" hits="10" branch="false"/>
<line number="424" hits="12" branch="false"/>
<line number="429" hits="12" branch="false"/>
<line number="430" hits="12" branch="false"/>
<line number="431" 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="432" hits="2" branch="false"/>
<line number="433" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="434" hits="2" branch="false"/>
<line number="435" hits="2" branch="false"/>
<line number="436" hits="2" branch="false"/>
<line number="438" hits="12" branch="false"/>
<line number="442" hits="12" branch="false"/>
<line number="443" hits="12" branch="false"/>
<line number="444" 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="445" hits="4" branch="false"/>
<line number="446" hits="4" 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="448" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="4" branch="false"/>
<line number="451" hits="4" branch="false"/>
<line number="453" hits="12" branch="false"/>
<line number="457" hits="8" branch="false"/>
<line number="458" hits="8" branch="false"/>
<line number="462" hits="9" branch="false"/>
<line number="463" hits="9" branch="false"/>
<line number="468" hits="22" branch="false"/>
<line number="469" hits="22" 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="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="471" hits="21" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="472" hits="10" branch="false"/>
<line number="474" hits="11" branch="false"/>
<line number="476" hits="12" branch="false"/>
<line number="480" hits="1" branch="false"/>
<line number="481" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="482" hits="2" branch="false"/>
<line number="484" hits="1" branch="false"/>
<line number="488" hits="2" branch="false"/>
<line number="489" hits="2" branch="false"/>
<line number="494" 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="495" hits="2" branch="false"/>
<line number="496" hits="2" branch="false"/>
<line number="497" hits="2" branch="false"/>
<line number="498" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="499" hits="4" branch="false"/>
<line number="500" hits="4" branch="false"/>
<line number="501" hits="2" branch="false"/>
<line number="502" hits="0" branch="false"/>
<line number="504" hits="2" branch="false"/>
<line number="508" 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="509" hits="2" branch="false"/>
<line number="510" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="511" hits="4" branch="false"/>
<line number="513" hits="2" branch="false"/>
<line number="515" hits="0" branch="false"/>
<line number="519" hits="3" branch="false"/>
<line number="520" hits="3" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="525" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="526" hits="2" 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="2" branch="false"/>
<line number="531" hits="1" branch="false"/>
<line number="535" hits="5" branch="false"/>
<line number="536" hits="5" branch="false"/>
<line number="537" hits="3" branch="false"/>
<line number="540" hits="6" branch="false"/>
<line number="541" hits="6" branch="false"/>
<line number="542" hits="3" branch="false"/>
<line number="545" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="546" hits="4" branch="false"/>
<line number="547" hits="4" branch="false"/>
<line number="549" hits="3" branch="false"/>
<line number="552" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="553" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="554" hits="3" branch="false"/>
<line number="557" hits="1" branch="false"/>
<line number="560" hits="1" branch="false"/>
<line number="561" hits="1" branch="false"/>
<line number="562" hits="0" branch="false"/>
<line number="565" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="566" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="567" hits="1" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="570" hits="0" branch="false"/>
<line number="573" hits="28" branch="false"/>
<line number="574" hits="28" branch="false"/>
<line number="578" hits="34" 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="1" branch="false"/>
<line number="583" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="584" hits="1" 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="1" 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="2" branch="false"/>
<line number="607" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="611" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="612" hits="1" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="613" hits="2" 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="2" branch="false"/>
<line number="618" hits="1" branch="false"/>
<line number="622" hits="1" branch="false"/>
<line number="623" hits="1" branch="false"/>
<line number="624" hits="0" branch="false"/>
<line number="627" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="628" hits="2" branch="false"/>
<line number="629" hits="2" branch="false"/>
<line number="631" hits="2" branch="false"/>
<line number="634" hits="2" branch="false"/>
<line number="635" hits="2" branch="false"/>
<line number="636" hits="1" branch="false"/>
<line number="639" hits="1" branch="false"/>
<line number="640" hits="1" branch="false"/>
<line number="643" 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="644" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="645" hits="3" branch="false"/>
<line number="646" hits="2" branch="false"/>
<line number="648" hits="1" branch="false"/>
<line number="662" hits="8" branch="false"/>
<line number="663" hits="8" branch="false"/>
<line number="664" hits="8" 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="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="88" branch="false"/>
<line number="72" hits="88" branch="false"/>
<line number="73" hits="88" branch="false"/>
<line number="74" hits="88" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="138" hits="2" 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="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="10" branch="false"/>
<line number="167" hits="10" branch="false"/>
<line number="169" hits="10" 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="10" 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="71" branch="false"/>
<line number="200" hits="71" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="201" hits="71" branch="false"/>
<line number="202" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="62" branch="false"/>
<line number="206" hits="9" branch="false"/>
<line number="210" hits="71" 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="50" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="125" hits="149" branch="false"/>
</lines>
</method>
<method name="isCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="104" 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="10" branch="false"/>
<line number="153" hits="10" 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="8" branch="false"/>
<line number="96" hits="8" branch="false"/>
<line number="97" hits="8" branch="false"/>
</lines>
</method>
<method name="setCachingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="121" hits="37" branch="false"/>
<line number="122" hits="37" 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="27" branch="false"/>
<line number="130" hits="27" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="71" hits="88" branch="false"/>
<line number="72" hits="88" branch="false"/>
<line number="73" hits="88" branch="false"/>
<line number="74" hits="88" branch="false"/>
<line number="84" hits="50" branch="false"/>
<line number="95" hits="8" branch="false"/>
<line number="96" hits="8" branch="false"/>
<line number="97" hits="8" branch="false"/>
<line number="111" hits="104" branch="false"/>
<line number="121" hits="37" branch="false"/>
<line number="122" hits="37" branch="false"/>
<line number="125" hits="149" branch="false"/>
<line number="129" hits="27" branch="false"/>
<line number="130" hits="27" branch="false"/>
<line number="138" hits="2" branch="false"/>
<line number="152" hits="10" branch="false"/>
<line number="153" hits="10" branch="false"/>
<line number="165" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="10" branch="false"/>
<line number="167" hits="10" branch="false"/>
<line number="169" hits="10" branch="false"/>
<line number="178" hits="10" branch="false"/>
<line number="199" hits="71" branch="false"/>
<line number="200" hits="71" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="201" hits="71" branch="false"/>
<line number="202" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="62" branch="false"/>
<line number="206" hits="9" branch="false"/>
<line number="210" hits="71" 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="32" branch="false"/>
<line number="55" hits="32" branch="false"/>
<line number="56" hits="32" branch="false"/>
<line number="57" hits="32" branch="false"/>
<line number="58" hits="32" branch="false"/>
<line number="61" hits="32" branch="false"/>
<line number="62" hits="32" 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="4" 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="37" branch="false"/>
<line number="102" hits="37" branch="false"/>
<line number="104" hits="37" branch="false"/>
<line number="106" hits="37" branch="false"/>
<line number="107" hits="37" branch="false"/>
<line number="108" hits="37" 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="17" branch="false"/>
<line number="130" hits="17" branch="false"/>
<line number="132" hits="17" branch="false"/>
<line number="133" hits="17" branch="false"/>
<line number="134" hits="17" 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="8" branch="false"/>
<line number="155" hits="8" branch="false"/>
<line number="157" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="8" 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="8" 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="8" 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="27" branch="false"/>
<line number="174" hits="27" branch="false"/>
<line number="176" hits="27" branch="false"/>
<line number="178" hits="27" 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="60" branch="false"/>
<line number="113" hits="60" branch="false"/>
<line number="115" hits="60" 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="49" branch="false"/>
<line number="72" hits="49" branch="false"/>
<line number="74" hits="49" 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="37" 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="64" 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="5" 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="32" branch="false"/>
<line number="55" hits="32" branch="false"/>
<line number="56" hits="32" branch="false"/>
<line number="57" hits="32" branch="false"/>
<line number="58" hits="32" branch="false"/>
<line number="61" hits="32" branch="false"/>
<line number="62" hits="32" 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="49" branch="false"/>
<line number="72" hits="49" branch="false"/>
<line number="74" hits="49" branch="false"/>
<line number="79" hits="4" 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="37" branch="false"/>
<line number="97" hits="64" branch="false"/>
<line number="101" hits="37" branch="false"/>
<line number="102" hits="37" branch="false"/>
<line number="104" hits="37" branch="false"/>
<line number="106" hits="37" branch="false"/>
<line number="107" hits="37" branch="false"/>
<line number="108" hits="37" branch="false"/>
<line number="111" hits="60" branch="false"/>
<line number="113" hits="60" branch="false"/>
<line number="115" hits="60" branch="false"/>
<line number="120" hits="5" 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="17" branch="false"/>
<line number="130" hits="17" branch="false"/>
<line number="132" hits="17" branch="false"/>
<line number="133" hits="17" branch="false"/>
<line number="134" hits="17" 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="8" branch="false"/>
<line number="155" hits="8" branch="false"/>
<line number="157" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="8" 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="8" 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="8" branch="false"/>
<line number="173" hits="27" branch="false"/>
<line number="174" hits="27" branch="false"/>
<line number="176" hits="27" branch="false"/>
<line number="178" hits="27" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="1" 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="1" branch="false"/>
<line number="61" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="11" branch="false"/>
<line number="101" hits="11" branch="false"/>
<line number="103" hits="11" branch="false"/>
<line number="105" hits="11" branch="false"/>
<line number="107" hits="11" branch="false"/>
<line number="109" hits="11" 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="11" branch="false"/>
<line number="205" hits="11" branch="false"/>
<line number="208" hits="11" 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="11" branch="false"/>
<line number="213" hits="11" branch="false"/>
<line number="215" hits="11" branch="false"/>
<line number="217" hits="11" branch="false"/>
<line number="218" hits="11" branch="false"/>
<line number="219" hits="11" branch="true" condition-coverage="80% (4/5)">
<conditions>
<condition number="0" type="switch" coverage="80%"/>
</conditions>
</line>
<line number="221" hits="7" branch="false"/>
<line number="222" hits="6" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="228" hits="2" branch="false"/>
<line number="229" hits="2" branch="false"/>
<line number="230" hits="2" branch="false"/>
<line number="231" hits="2" branch="false"/>
<line number="233" hits="2" branch="false"/>
<line number="234" hits="2" branch="false"/>
<line number="237" hits="10" 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="10" branch="false"/>
<line number="243" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="4" 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="11" branch="false"/>
<line number="257" hits="10" branch="false"/>
<line number="259" hits="10" 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="4" 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="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="327" hits="4" branch="false"/>
<line number="328" hits="4" branch="false"/>
<line number="330" hits="4" branch="false"/>
<line number="333" hits="4" branch="false"/>
<line number="334" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="335" hits="2" 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="4" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="352" hits="4" branch="false"/>
</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="11" branch="false"/>
<line number="266" hits="11" branch="true" condition-coverage="40% (2/5)">
<conditions>
<condition number="0" type="switch" coverage="40%"/>
</conditions>
</line>
<line number="270" hits="9" branch="false"/>
<line number="271" hits="9" branch="false"/>
<line number="273" hits="2" branch="false"/>
<line number="274" hits="2" branch="false"/>
<line number="277" hits="11" branch="false"/>
<line number="278" hits="11" branch="false"/>
<line number="280" hits="11" branch="false"/>
<line number="281" hits="11" branch="false"/>
<line number="284" hits="11" branch="false"/>
<line number="287" hits="11" branch="false"/>
<line number="288" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="291" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="1" branch="false"/>
<line number="295" hits="11" branch="false"/>
<line number="296" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="297" hits="2" branch="false"/>
<line number="300" hits="11" branch="false"/>
<line number="303" hits="11" branch="false"/>
<line number="304" hits="11" branch="false"/>
<line number="305" hits="10" branch="false"/>
<line number="307" hits="10" 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="2" branch="false"/>
<line number="390" hits="2" branch="false"/>
<line number="392" hits="2" branch="false"/>
<line number="393" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="395" hits="2" branch="false"/>
<line number="397" hits="2" branch="false"/>
<line number="401" hits="2" branch="false"/>
<line number="404" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="2" branch="false"/>
<line number="409" hits="2" branch="false"/>
<line number="410" hits="2" branch="false"/>
<line number="412" hits="2" branch="false"/>
<line number="413" hits="2" branch="false"/>
<line number="415" hits="2" branch="false"/>
<line number="417" hits="2" branch="false"/>
<line number="418" hits="2" branch="false"/>
<line number="420" hits="2" 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="4" branch="false"/>
<line number="358" hits="4" branch="false"/>
<line number="359" hits="4" branch="false"/>
<line number="361" hits="4" branch="false"/>
<line number="362" hits="4" branch="false"/>
<line number="365" hits="4" branch="false"/>
<line number="368" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="370" hits="4" branch="false"/>
<line number="373" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="4" 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="4" branch="false"/>
<line number="382" hits="4" branch="false"/>
<line number="383" hits="4" branch="false"/>
<line number="384" hits="4" branch="false"/>
<line number="385" hits="4" 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="2" 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="11" branch="false"/>
<line number="126" hits="11" branch="false"/>
</lines>
</method>
<method name="setPermissionsLookupEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="183" hits="2" branch="false"/>
<line number="184" hits="2" 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="11" branch="false"/>
<line number="193" hits="11" 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="2" branch="false"/>
<line number="196" hits="11" 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="11" branch="false"/>
<line number="84" hits="1" branch="false"/>
<line number="101" hits="11" branch="false"/>
<line number="103" hits="11" branch="false"/>
<line number="105" hits="11" branch="false"/>
<line number="107" hits="11" branch="false"/>
<line number="109" hits="11" branch="false"/>
<line number="125" hits="11" branch="false"/>
<line number="126" hits="11" 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="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="192" hits="11" branch="false"/>
<line number="193" hits="11" 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="2" branch="false"/>
<line number="196" hits="11" branch="false"/>
<line number="204" hits="11" branch="false"/>
<line number="205" hits="11" branch="false"/>
<line number="208" hits="11" 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="11" branch="false"/>
<line number="213" hits="11" branch="false"/>
<line number="215" hits="11" branch="false"/>
<line number="217" hits="11" branch="false"/>
<line number="218" hits="11" branch="false"/>
<line number="219" hits="11" branch="true" condition-coverage="80% (4/5)">
<conditions>
<condition number="0" type="switch" coverage="80%"/>
</conditions>
</line>
<line number="221" hits="7" branch="false"/>
<line number="222" hits="6" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="228" hits="2" branch="false"/>
<line number="229" hits="2" branch="false"/>
<line number="230" hits="2" branch="false"/>
<line number="231" hits="2" branch="false"/>
<line number="233" hits="2" branch="false"/>
<line number="234" hits="2" branch="false"/>
<line number="237" hits="10" 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="10" branch="false"/>
<line number="243" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="4" 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="11" branch="false"/>
<line number="257" hits="10" branch="false"/>
<line number="259" hits="10" branch="false"/>
<line number="265" hits="11" branch="false"/>
<line number="266" hits="11" branch="true" condition-coverage="40% (2/5)">
<conditions>
<condition number="0" type="switch" coverage="40%"/>
</conditions>
</line>
<line number="270" hits="9" branch="false"/>
<line number="271" hits="9" branch="false"/>
<line number="273" hits="2" branch="false"/>
<line number="274" hits="2" branch="false"/>
<line number="277" hits="11" branch="false"/>
<line number="278" hits="11" branch="false"/>
<line number="280" hits="11" branch="false"/>
<line number="281" hits="11" branch="false"/>
<line number="284" hits="11" branch="false"/>
<line number="287" hits="11" branch="false"/>
<line number="288" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="291" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="1" branch="false"/>
<line number="295" hits="11" branch="false"/>
<line number="296" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="297" hits="2" branch="false"/>
<line number="300" hits="11" branch="false"/>
<line number="303" hits="11" branch="false"/>
<line number="304" hits="11" branch="false"/>
<line number="305" hits="10" branch="false"/>
<line number="307" hits="10" branch="false"/>
<line number="320" hits="4" 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="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="327" hits="4" branch="false"/>
<line number="328" hits="4" branch="false"/>
<line number="330" hits="4" branch="false"/>
<line number="333" hits="4" branch="false"/>
<line number="334" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="335" hits="2" 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="4" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="352" hits="4" branch="false"/>
<line number="357" hits="4" branch="false"/>
<line number="358" hits="4" branch="false"/>
<line number="359" hits="4" branch="false"/>
<line number="361" hits="4" branch="false"/>
<line number="362" hits="4" branch="false"/>
<line number="365" hits="4" branch="false"/>
<line number="368" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="370" hits="4" branch="false"/>
<line number="373" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="4" 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="4" branch="false"/>
<line number="382" hits="4" branch="false"/>
<line number="383" hits="4" branch="false"/>
<line number="384" hits="4" branch="false"/>
<line number="385" hits="4" branch="false"/>
<line number="389" hits="2" branch="false"/>
<line number="390" hits="2" branch="false"/>
<line number="392" hits="2" branch="false"/>
<line number="393" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="395" hits="2" branch="false"/>
<line number="397" hits="2" branch="false"/>
<line number="401" hits="2" branch="false"/>
<line number="404" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="2" branch="false"/>
<line number="409" hits="2" branch="false"/>
<line number="410" hits="2" branch="false"/>
<line number="412" hits="2" branch="false"/>
<line number="413" hits="2" branch="false"/>
<line number="415" hits="2" branch="false"/>
<line number="417" hits="2" branch="false"/>
<line number="418" hits="2" branch="false"/>
<line number="420" hits="2" branch="false"/>
<line number="424" hits="2" 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="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="219" hits="1" 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="6" 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="6" 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="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="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="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="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.7380073800738007" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="72" hits="1" branch="false"/>
<line number="74" hits="1" branch="false"/>
<line number="76" hits="1" 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="1" 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="1" branch="false"/>
<line number="200" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="1" branch="false"/>
<line number="176" hits="1" branch="false"/>
<line number="177" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="179" hits="1" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="181" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="185" hits="1" 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="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="72" hits="1" branch="false"/>
<line number="74" hits="1" branch="false"/>
<line number="76" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="1" branch="false"/>
<line number="176" hits="1" branch="false"/>
<line number="177" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="179" hits="1" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="181" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="185" hits="1" branch="false"/>
<line number="192" hits="1" 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="1" branch="false"/>
<line number="200" hits="1" 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.7377049180327869" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="48" hits="8" branch="false"/>
<line number="68" hits="8" branch="false"/>
<line number="70" hits="8" branch="false"/>
<line number="72" hits="8" branch="false"/>
<line number="74" hits="8" branch="false"/>
<line number="76" hits="8" branch="false"/>
<line number="78" hits="8" branch="false"/>
<line number="80" hits="8" branch="false"/>
<line number="82" hits="8" branch="false"/>
<line number="84" hits="8" 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="1" 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="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="1" branch="false"/>
<line number="232" hits="5" branch="false"/>
<line number="234" hits="5" branch="false"/>
<line number="235" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="5" branch="false"/>
<line number="238" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="4" branch="false"/>
<line number="241" hits="5" branch="false"/>
<line number="242" hits="5" branch="false"/>
<line number="243" hits="5" branch="false"/>
<line number="246" hits="5" 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="5" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="5" branch="false"/>
<line number="263" hits="1" 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="1" branch="false"/>
<line number="113" hits="1" 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="1" branch="false"/>
<line number="125" hits="1" 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="1" branch="false"/>
<line number="176" hits="1" 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="1" branch="false"/>
<line number="164" hits="1" 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="6" branch="false"/>
<line number="144" hits="6" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="5" 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="301" hits="5" branch="false"/>
<line number="305" hits="5" branch="true" condition-coverage="78% (11/14)">
<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%"/>
<condition number="5" type="jump" coverage="50%"/>
<condition number="6" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="4" branch="false"/>
<line number="315" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="8" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="8" branch="false"/>
<line number="70" hits="8" branch="false"/>
<line number="72" hits="8" branch="false"/>
<line number="74" hits="8" branch="false"/>
<line number="76" hits="8" branch="false"/>
<line number="78" hits="8" branch="false"/>
<line number="80" hits="8" branch="false"/>
<line number="82" hits="8" branch="false"/>
<line number="84" hits="8" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="112" hits="1" branch="false"/>
<line number="113" hits="1" branch="false"/>
<line number="124" hits="1" branch="false"/>
<line number="125" hits="1" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
<line number="143" hits="6" branch="false"/>
<line number="144" hits="6" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="163" hits="1" branch="false"/>
<line number="164" hits="1" branch="false"/>
<line number="175" hits="1" branch="false"/>
<line number="176" hits="1" 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="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="1" branch="false"/>
<line number="232" hits="5" branch="false"/>
<line number="234" hits="5" branch="false"/>
<line number="235" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="5" branch="false"/>
<line number="238" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="4" branch="false"/>
<line number="241" hits="5" branch="false"/>
<line number="242" hits="5" branch="false"/>
<line number="243" hits="5" branch="false"/>
<line number="246" hits="5" 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="5" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="5" branch="false"/>
<line number="263" hits="1" branch="false"/>
<line number="276" hits="1" branch="false"/>
<line number="295" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="5" branch="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="301" hits="5" branch="false"/>
<line number="305" hits="5" branch="true" condition-coverage="78% (11/14)">
<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%"/>
<condition number="5" type="jump" coverage="50%"/>
<condition number="6" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="4" branch="false"/>
<line number="315" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="113" hits="33" branch="false"/>
<line number="114" hits="33" branch="false"/>
<line number="115" hits="33" branch="false"/>
<line number="116" hits="33" branch="false"/>
<line number="117" hits="33" branch="false"/>
<line number="118" hits="33" 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="1" branch="false"/>
</lines>
</method>
<method name="getAuthenticationMechanism" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="160" hits="11" branch="false"/>
</lines>
</method>
<method name="getContextFactoryClassName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="1" branch="false"/>
</lines>
</method>
<method name="getEnvironment" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="201" hits="7" 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="23" 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="10" branch="false"/>
<line number="458" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="459" hits="1" branch="false"/>
<line number="464" hits="9" branch="false"/>
<line number="466" hits="9" branch="false"/>
<line number="467" hits="9" 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="9" branch="false"/>
<line number="475" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="476" hits="9" branch="false"/>
<line number="478" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="479" hits="8" branch="false"/>
<line number="482" hits="9" branch="false"/>
<line number="483" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="484" hits="1" branch="false"/>
<line number="487" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="493" hits="9" branch="false"/>
<line number="495" hits="5" 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="1" branch="false"/>
</lines>
</method>
<method name="getReferral" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="312" hits="1" 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="2" branch="false"/>
</lines>
</method>
<method name="getSystemPassword" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="359" hits="2" branch="false"/>
</lines>
</method>
<method name="getSystemUsername" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="386" hits="10" branch="false"/>
</lines>
</method>
<method name="getUrl" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="331" hits="10" 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="9" 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="9" 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="3" branch="false"/>
<line number="141" hits="3" 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="33" branch="false"/>
<line number="173" hits="33" 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="1" branch="false"/>
<line number="219" hits="1" 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="79" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="78" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="244" hits="79" branch="false"/>
</lines>
</method>
<method name="setPoolingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="289" hits="1" branch="false"/>
<line number="290" hits="1" 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="34" branch="false"/>
<line number="301" hits="34" 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="2" branch="false"/>
<line number="346" 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="373" hits="2" branch="false"/>
<line number="374" 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="321" hits="9" branch="false"/>
<line number="322" hits="9" 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="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="530" hits="9" 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="533" hits="9" branch="false"/>
<line number="537" hits="9" branch="true" condition-coverage="78% (11/14)">
<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%"/>
<condition number="5" type="jump" coverage="50%"/>
<condition number="6" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="4" branch="false"/>
<line number="547" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="93" hits="1" branch="false"/>
<line number="113" hits="33" branch="false"/>
<line number="114" hits="33" branch="false"/>
<line number="115" hits="33" branch="false"/>
<line number="116" hits="33" branch="false"/>
<line number="117" hits="33" branch="false"/>
<line number="118" hits="33" branch="false"/>
<line number="140" hits="3" branch="false"/>
<line number="141" hits="3" branch="false"/>
<line number="160" hits="11" branch="false"/>
<line number="172" hits="33" branch="false"/>
<line number="173" hits="33" branch="false"/>
<line number="184" hits="1" branch="false"/>
<line number="201" hits="7" branch="false"/>
<line number="218" hits="1" branch="false"/>
<line number="219" hits="1" branch="false"/>
<line number="228" hits="23" branch="false"/>
<line number="239" hits="79" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="78" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="244" hits="79" branch="false"/>
<line number="266" hits="9" branch="false"/>
<line number="289" hits="1" branch="false"/>
<line number="290" hits="1" branch="false"/>
<line number="300" hits="34" branch="false"/>
<line number="301" hits="34" branch="false"/>
<line number="312" hits="1" branch="false"/>
<line number="321" hits="9" branch="false"/>
<line number="322" hits="9" branch="false"/>
<line number="331" hits="10" branch="false"/>
<line number="345" hits="2" branch="false"/>
<line number="346" hits="2" branch="false"/>
<line number="359" hits="2" branch="false"/>
<line number="373" hits="2" branch="false"/>
<line number="374" hits="2" branch="false"/>
<line number="386" hits="10" branch="false"/>
<line number="402" hits="2" branch="false"/>
<line number="418" hits="1" branch="false"/>
<line number="435" hits="9" 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="10" branch="false"/>
<line number="458" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="459" hits="1" branch="false"/>
<line number="464" hits="9" branch="false"/>
<line number="466" hits="9" branch="false"/>
<line number="467" hits="9" 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="9" branch="false"/>
<line number="475" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="476" hits="9" branch="false"/>
<line number="478" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="479" hits="8" branch="false"/>
<line number="482" hits="9" branch="false"/>
<line number="483" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="484" hits="1" branch="false"/>
<line number="487" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="493" hits="9" branch="false"/>
<line number="495" hits="5" branch="false"/>
<line number="508" hits="1" branch="false"/>
<line number="527" hits="9" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="530" hits="9" 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="533" hits="9" branch="false"/>
<line number="537" hits="9" branch="true" condition-coverage="78% (11/14)">
<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%"/>
<condition number="5" type="jump" coverage="50%"/>
<condition number="6" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="4" branch="false"/>
<line number="547" hits="5" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="13" branch="false"/>
<line number="113" hits="13" branch="false"/>
<line number="115" hits="13" branch="false"/>
<line number="116" hits="13" branch="false"/>
<line number="117" hits="13" 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="2" 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="4" 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="1" branch="false"/>
<line number="300" hits="1" branch="false"/>
<line number="301" hits="1" branch="false"/>
<line number="302" hits="1" branch="false"/>
<line number="303" hits="1" branch="false"/>
<line number="304" hits="2" branch="false"/>
<line number="306" 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="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="14" 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="4" branch="false"/>
<line number="340" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="341" hits="3" branch="false"/>
<line number="342" hits="3" branch="false"/>
<line number="344" hits="1" 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="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="1" branch="false"/>
<line number="231" hits="5" branch="false"/>
<line number="232" hits="5" branch="false"/>
<line number="233" hits="5" 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="1" branch="false"/>
<line number="237" hits="1" branch="false"/>
<line number="240" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="241" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="4" branch="false"/>
<line number="246" hits="4" branch="false"/>
<line number="247" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="4" branch="false"/>
<line number="250" hits="4" branch="false"/>
</lines>
</method>
<method name="getUserDnPrefix" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="132" hits="4" branch="false"/>
</lines>
</method>
<method name="getUserDnSuffix" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="144" hits="4" branch="false"/>
</lines>
</method>
<method name="getUserDnTemplate" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="209" hits="1" 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="4" branch="false"/>
<line number="367" hits="4" branch="false"/>
<line number="369" hits="4" branch="false"/>
<line number="371" hits="4" branch="false"/>
<line number="373" hits="4" branch="false"/>
<line number="375" hits="4" branch="false"/>
<line number="377" hits="2" branch="false"/>
<line number="379" hits="2" 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="4" branch="false"/>
<line number="264" hits="4" 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="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="186" hits="6" branch="false"/>
<line number="187" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="1" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="193" hits="5" branch="false"/>
<line number="194" hits="5" branch="false"/>
<line number="195" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="5" branch="false"/>
<line number="198" hits="5" branch="false"/>
<line number="199" hits="5" branch="false"/>
<line number="200" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="86" hits="1" branch="false"/>
<line number="111" hits="13" branch="false"/>
<line number="113" hits="13" branch="false"/>
<line number="115" hits="13" branch="false"/>
<line number="116" hits="13" branch="false"/>
<line number="117" hits="13" branch="false"/>
<line number="132" hits="4" branch="false"/>
<line number="144" hits="4" branch="false"/>
<line number="182" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="186" hits="6" branch="false"/>
<line number="187" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="1" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="193" hits="5" branch="false"/>
<line number="194" hits="5" branch="false"/>
<line number="195" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="5" branch="false"/>
<line number="198" hits="5" branch="false"/>
<line number="199" hits="5" branch="false"/>
<line number="200" hits="5" branch="false"/>
<line number="209" hits="1" branch="false"/>
<line number="228" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="1" branch="false"/>
<line number="231" hits="5" branch="false"/>
<line number="232" hits="5" branch="false"/>
<line number="233" hits="5" 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="1" branch="false"/>
<line number="237" hits="1" branch="false"/>
<line number="240" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="241" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="4" branch="false"/>
<line number="246" hits="4" branch="false"/>
<line number="247" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="4" branch="false"/>
<line number="250" hits="4" branch="false"/>
<line number="263" hits="4" branch="false"/>
<line number="264" hits="4" branch="false"/>
<line number="275" hits="14" branch="false"/>
<line number="295" hits="4" 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="1" branch="false"/>
<line number="300" hits="1" branch="false"/>
<line number="301" hits="1" branch="false"/>
<line number="302" hits="1" branch="false"/>
<line number="303" hits="1" branch="false"/>
<line number="304" hits="2" branch="false"/>
<line number="306" hits="2" 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="4" branch="false"/>
<line number="340" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="341" hits="3" branch="false"/>
<line number="342" hits="3" branch="false"/>
<line number="344" hits="1" branch="false"/>
<line number="366" hits="4" branch="false"/>
<line number="367" hits="4" branch="false"/>
<line number="369" hits="4" branch="false"/>
<line number="371" hits="4" branch="false"/>
<line number="373" hits="4" branch="false"/>
<line number="375" hits="4" branch="false"/>
<line number="377" hits="2" branch="false"/>
<line number="379" hits="2" branch="false"/>
<line number="412" hits="2" 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="1" 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="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="4" branch="false"/>
<line number="59" hits="4" 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="1" branch="false"/>
<line number="53" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="4" branch="false"/>
<line number="59" hits="4" 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.7112970711297071" 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.7735849056603774" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="23" branch="false"/>
<line number="57" hits="23" 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="13" branch="false"/>
<line number="74" hits="13" branch="false"/>
<line number="75" hits="13" 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="10" branch="false"/>
</lines>
</method>
<method name="getResourcePath" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="100" hits="10" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="0.7272727272727273" branch-rate="0.5625">
<lines>
<line number="129" hits="10" branch="false"/>
<line number="134" hits="10" branch="false"/>
<line number="135" hits="10" branch="false"/>
<line number="137" 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="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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="3" branch="false"/>
<line number="153" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="2" branch="false"/>
<line number="155" hits="2" branch="false"/>
<line number="156" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="157" hits="2" branch="false"/>
<line number="162" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="1" branch="false"/>
<line number="165" hits="1" branch="false"/>
<line number="168" hits="9" branch="false"/>
<line number="169" hits="9" 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="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
<line number="177" hits="20" branch="false"/>
<line number="178" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="4" branch="false"/>
<line number="180" hits="4" branch="false"/>
<line number="183" hits="20" branch="false"/>
<line number="184" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="19" branch="false"/>
<line number="186" hits="19" branch="false"/>
<line number="188" hits="1" branch="false"/>
<line number="192" hits="20" 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="9" branch="false"/>
<line number="125" hits="9" 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="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="1" branch="false"/>
<line number="56" hits="23" branch="false"/>
<line number="57" hits="23" branch="false"/>
<line number="73" hits="13" branch="false"/>
<line number="74" hits="13" branch="false"/>
<line number="75" hits="13" 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="10" branch="false"/>
<line number="104" hits="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="114" hits="10" branch="false"/>
<line number="124" hits="9" branch="false"/>
<line number="125" hits="9" branch="false"/>
<line number="129" hits="10" branch="false"/>
<line number="134" hits="10" branch="false"/>
<line number="135" hits="10" branch="false"/>
<line number="137" 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="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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="3" branch="false"/>
<line number="153" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="2" branch="false"/>
<line number="155" hits="2" branch="false"/>
<line number="156" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="157" hits="2" branch="false"/>
<line number="162" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="1" branch="false"/>
<line number="165" hits="1" branch="false"/>
<line number="168" hits="9" branch="false"/>
<line number="169" hits="9" branch="false"/>
<line number="172" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
<line number="177" hits="20" branch="false"/>
<line number="178" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="4" branch="false"/>
<line number="180" hits="4" branch="false"/>
<line number="183" hits="20" branch="false"/>
<line number="184" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="19" branch="false"/>
<line number="186" hits="19" branch="false"/>
<line number="188" hits="1" branch="false"/>
<line number="192" hits="20" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="1" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
</lines>
</method>
<method name="afterRoleCacheSet" signature="()V" line-rate="0.75" branch-rate="0.25">
<lines>
<line number="162" hits="1" branch="false"/>
<line number="165" hits="1" 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="1" 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="1" branch="false"/>
<line number="303" hits="1" branch="false"/>
<line number="305" hits="1" branch="false"/>
<line number="307" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="309" hits="2" branch="false"/>
<line number="310" hits="2" branch="false"/>
<line number="311" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="2" branch="false"/>
<line number="315" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="1" branch="false"/>
<line number="317" hits="1" branch="false"/>
<line number="318" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="1" branch="false"/>
<line number="320" hits="1" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="324" hits="0" branch="false"/>
<line number="326" hits="2" branch="false"/>
<line number="328" hits="1" branch="false"/>
<line number="329" hits="1" branch="false"/>
<line number="330" hits="1" branch="false"/>
<line number="331" hits="1" 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="2" 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="1" 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="1" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="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="2" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="0" branch="false"/>
<line number="210" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="211" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
<line number="215" hits="1" branch="false"/>
<line number="216" hits="1" 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="1" branch="false"/>
<line number="221" hits="1" branch="false"/>
<line number="224" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="1" branch="false"/>
<line number="228" hits="1" branch="false"/>
<line number="229" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="239" hits="1" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="249" hits="1" branch="false"/>
<line number="250" hits="1" branch="false"/>
<line number="252" hits="1" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="156" hits="1" branch="false"/>
<line number="158" hits="1" branch="false"/>
<line number="159" hits="1" 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="1" branch="false"/>
<line number="136" hits="1" 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="1" branch="false"/>
<line number="101" hits="1" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="135" hits="1" branch="false"/>
<line number="136" hits="1" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="156" hits="1" branch="false"/>
<line number="158" hits="1" branch="false"/>
<line number="159" hits="1" branch="false"/>
<line number="162" hits="1" branch="false"/>
<line number="165" hits="1" 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="1" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="0" branch="false"/>
<line number="210" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="211" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
<line number="215" hits="1" branch="false"/>
<line number="216" hits="1" branch="false"/>
<line number="219" hits="1" branch="false"/>
<line number="221" hits="1" branch="false"/>
<line number="224" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="1" branch="false"/>
<line number="228" hits="1" branch="false"/>
<line number="229" hits="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="239" hits="1" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="249" hits="1" branch="false"/>
<line number="250" hits="1" branch="false"/>
<line number="252" hits="1" 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="1" branch="false"/>
<line number="303" hits="1" branch="false"/>
<line number="305" hits="1" branch="false"/>
<line number="307" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="309" hits="2" branch="false"/>
<line number="310" hits="2" branch="false"/>
<line number="311" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="2" branch="false"/>
<line number="315" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="1" branch="false"/>
<line number="317" hits="1" branch="false"/>
<line number="318" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="1" branch="false"/>
<line number="320" hits="1" branch="false"/>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="324" hits="0" branch="false"/>
<line number="326" hits="2" branch="false"/>
<line number="328" hits="1" branch="false"/>
<line number="329" hits="1" branch="false"/>
<line number="330" hits="1" branch="false"/>
<line number="331" hits="1" branch="false"/>
<line number="334" hits="2" branch="false"/>
<line number="338" hits="2" 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="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="346" hits="1" branch="false"/>
<line number="350" hits="1" 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="31" branch="false"/>
<line number="55" hits="31" branch="false"/>
</lines>
</method>
<method name="getRoleDefinitions" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="18" branch="false"/>
</lines>
</method>
<method name="getUserDefinitions" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="18" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="16" branch="false"/>
<line number="66" hits="16" branch="false"/>
<line number="67" hits="16" branch="false"/>
</lines>
</method>
<method name="processDefinitions" signature="()V" line-rate="0.5714285714285714" branch-rate="1.0">
<lines>
<line number="125" hits="17" branch="false"/>
<line number="126" hits="17" 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="17" branch="false"/>
<line number="131" hits="17" branch="false"/>
</lines>
</method>
<method name="processRoleDefinitions" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="134" hits="18" branch="false"/>
<line number="135" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="11" branch="false"/>
<line number="138" hits="7" branch="false"/>
<line number="139" hits="7" branch="false"/>
<line number="140" hits="7" 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="11" 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="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="17" branch="false"/>
<line number="149" hits="17" branch="false"/>
<line number="150" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="151" hits="17" branch="false"/>
<line number="152" hits="17" branch="false"/>
<line number="155" hits="17" branch="false"/>
<line number="156" hits="17" branch="false"/>
<line number="157" hits="17" branch="false"/>
<line number="158" hits="11" branch="false"/>
</lines>
</method>
<method name="processUserDefinitions" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="161" hits="18" branch="false"/>
<line number="162" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="11" branch="false"/>
<line number="166" hits="7" branch="false"/>
<line number="168" hits="7" branch="false"/>
<line number="169" hits="7" 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="26" 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="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="37" branch="false"/>
<line number="179" hits="37" branch="false"/>
<line number="181" hits="37" branch="false"/>
<line number="183" hits="37" branch="false"/>
<line number="184" hits="37" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="185" hits="37" branch="false"/>
<line number="186" hits="37" branch="false"/>
<line number="188" hits="37" branch="false"/>
<line number="190" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="38" branch="false"/>
<line number="193" hits="38" branch="false"/>
<line number="195" hits="38" branch="false"/>
<line number="196" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="24" branch="false"/>
<line number="201" hits="11" branch="false"/>
<line number="203" hits="37" branch="false"/>
<line number="204" hits="26" 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="7" branch="false"/>
<line number="121" hits="7" 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="7" branch="false"/>
<line number="91" hits="7" 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="14" branch="false"/>
<line number="208" hits="14" branch="false"/>
<line number="209" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="26" branch="false"/>
<line number="212" hits="14" 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="14" 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="14" branch="false"/>
<line number="221" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="26" branch="false"/>
<line number="223" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="224" hits="26" branch="false"/>
<line number="226" hits="26" branch="false"/>
<line number="228" hits="14" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="31" branch="false"/>
<line number="55" hits="31" branch="false"/>
<line number="65" hits="16" branch="false"/>
<line number="66" hits="16" branch="false"/>
<line number="67" hits="16" branch="false"/>
<line number="70" hits="18" branch="false"/>
<line number="90" hits="7" branch="false"/>
<line number="91" hits="7" branch="false"/>
<line number="94" hits="18" branch="false"/>
<line number="120" hits="7" branch="false"/>
<line number="121" hits="7" branch="false"/>
<line number="125" hits="17" branch="false"/>
<line number="126" hits="17" 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="17" branch="false"/>
<line number="131" hits="17" branch="false"/>
<line number="134" hits="18" branch="false"/>
<line number="135" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="11" branch="false"/>
<line number="138" hits="7" branch="false"/>
<line number="139" hits="7" branch="false"/>
<line number="140" hits="7" branch="false"/>
<line number="143" hits="11" 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="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="17" branch="false"/>
<line number="149" hits="17" branch="false"/>
<line number="150" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="151" hits="17" branch="false"/>
<line number="152" hits="17" branch="false"/>
<line number="155" hits="17" branch="false"/>
<line number="156" hits="17" branch="false"/>
<line number="157" hits="17" branch="false"/>
<line number="158" hits="11" branch="false"/>
<line number="161" hits="18" branch="false"/>
<line number="162" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="11" branch="false"/>
<line number="166" hits="7" branch="false"/>
<line number="168" hits="7" branch="false"/>
<line number="169" hits="7" branch="false"/>
<line number="172" hits="26" 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="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="37" branch="false"/>
<line number="179" hits="37" branch="false"/>
<line number="181" hits="37" branch="false"/>
<line number="183" hits="37" branch="false"/>
<line number="184" hits="37" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="185" hits="37" branch="false"/>
<line number="186" hits="37" branch="false"/>
<line number="188" hits="37" branch="false"/>
<line number="190" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="38" branch="false"/>
<line number="193" hits="38" branch="false"/>
<line number="195" hits="38" branch="false"/>
<line number="196" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="24" branch="false"/>
<line number="201" hits="11" branch="false"/>
<line number="203" hits="37" branch="false"/>
<line number="204" hits="26" branch="false"/>
<line number="207" hits="14" branch="false"/>
<line number="208" hits="14" branch="false"/>
<line number="209" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="26" branch="false"/>
<line number="212" hits="14" branch="false"/>
<line number="216" hits="14" 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="14" branch="false"/>
<line number="221" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="26" branch="false"/>
<line number="223" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="224" hits="26" branch="false"/>
<line number="226" hits="26" branch="false"/>
<line number="228" hits="14" 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="6" branch="false"/>
<line number="44" hits="6" 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="6" branch="false"/>
<line number="44" hits="6" 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="7" branch="false"/>
<line number="50" hits="7" 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="7" branch="false"/>
<line number="50" hits="7" 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="56" branch="false"/>
<line number="48" hits="56" 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="56" branch="false"/>
<line number="52" hits="56" 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="196" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="114" hits="1" 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="283" 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="53" 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="51" branch="false"/>
<line number="129" hits="51" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="86" hits="2" branch="false"/>
<line number="87" hits="1" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="18" branch="false"/>
<line number="108" hits="18" 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="56" branch="false"/>
<line number="48" hits="56" 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="56" branch="false"/>
<line number="52" hits="56" branch="false"/>
<line number="58" hits="283" 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="2" branch="false"/>
<line number="87" hits="1" 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="18" branch="false"/>
<line number="108" hits="18" branch="false"/>
<line number="114" hits="1" branch="false"/>
<line number="121" hits="196" branch="false"/>
<line number="128" hits="51" branch="false"/>
<line number="129" hits="51" branch="false"/>
<line number="135" hits="53" 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="7" branch="false"/>
<line number="46" hits="7" 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="7" branch="false"/>
<line number="46" hits="7" 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="5" 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="3" 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="5" branch="false"/>
<line number="36" hits="3" 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="6" branch="false"/>
<line number="44" hits="6" 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="6" branch="false"/>
<line number="44" hits="6" 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.7614840989399293" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="45" branch="false"/>
<line number="46" hits="45" branch="false"/>
<line number="47" hits="45" 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="28" branch="false"/>
<line number="85" hits="28" branch="false"/>
<line number="86" hits="28" 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="18" 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="1" 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="28" 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="107" 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="4" 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="5" 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="203" branch="false"/>
<line number="113" hits="199" 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="199" 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="203" 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="203" 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="6" branch="false"/>
<line number="167" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="3" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="5" 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="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="5" branch="false"/>
<line number="155" hits="5" branch="false"/>
<line number="156" hits="28" 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="12" branch="false"/>
<line number="160" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="2" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="163" hits="12" 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="1" 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="28" 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="12" branch="false"/>
<line number="256" hits="12" 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="28" branch="false"/>
<line number="224" hits="28" branch="false"/>
<line number="225" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="17" branch="false"/>
<line number="228" hits="28" 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="44" 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="44" branch="false"/>
<line number="217" hits="44" branch="false"/>
<line number="218" hits="44" branch="false"/>
<line number="220" hits="44" 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="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="2" 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="5" branch="false"/>
<line number="186" hits="4" branch="false"/>
<line number="187" hits="4" branch="false"/>
<line number="188" hits="4" 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="28" branch="false"/>
<line number="60" hits="28" branch="false"/>
<line number="61" hits="28" branch="false"/>
<line number="62" hits="28" branch="false"/>
<line number="64" hits="28" 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="12" branch="false"/>
<line number="243" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="12" branch="false"/>
<line number="246" hits="12" branch="false"/>
<line number="247" hits="12" branch="false"/>
<line number="248" hits="12" branch="false"/>
<line number="250" hits="12" branch="false"/>
<line number="251" hits="12" branch="false"/>
<line number="252" hits="12" 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="1" branch="false"/>
<line number="192" hits="1" branch="false"/>
<line number="193" hits="1" branch="false"/>
<line number="194" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="1" branch="false"/>
<line number="45" hits="45" branch="false"/>
<line number="46" hits="45" branch="false"/>
<line number="47" hits="45" branch="false"/>
<line number="50" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="2" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="59" hits="28" branch="false"/>
<line number="60" hits="28" branch="false"/>
<line number="61" hits="28" branch="false"/>
<line number="62" hits="28" branch="false"/>
<line number="64" hits="28" branch="false"/>
<line number="84" hits="28" branch="false"/>
<line number="85" hits="28" branch="false"/>
<line number="86" hits="28" branch="false"/>
<line number="97" hits="28" 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="203" 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="203" branch="false"/>
<line number="112" hits="203" branch="false"/>
<line number="113" hits="199" 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="199" branch="false"/>
<line number="123" hits="28" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="141" hits="18" branch="false"/>
<line number="153" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="5" branch="false"/>
<line number="155" hits="5" branch="false"/>
<line number="156" hits="28" branch="false"/>
<line number="159" hits="12" branch="false"/>
<line number="160" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="2" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="163" hits="12" branch="false"/>
<line number="166" hits="6" branch="false"/>
<line number="167" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="3" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="5" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="181" hits="5" branch="false"/>
<line number="185" hits="5" branch="false"/>
<line number="186" hits="4" branch="false"/>
<line number="187" hits="4" branch="false"/>
<line number="188" hits="4" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="192" hits="1" branch="false"/>
<line number="193" hits="1" branch="false"/>
<line number="194" hits="1" 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="107" branch="false"/>
<line number="213" hits="44" 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="44" branch="false"/>
<line number="217" hits="44" branch="false"/>
<line number="218" hits="44" branch="false"/>
<line number="220" hits="44" branch="false"/>
<line number="223" hits="28" branch="false"/>
<line number="224" hits="28" branch="false"/>
<line number="225" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="17" branch="false"/>
<line number="228" hits="28" 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="12" branch="false"/>
<line number="243" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="12" branch="false"/>
<line number="246" hits="12" branch="false"/>
<line number="247" hits="12" branch="false"/>
<line number="248" hits="12" branch="false"/>
<line number="250" hits="12" branch="false"/>
<line number="251" hits="12" branch="false"/>
<line number="252" hits="12" branch="false"/>
<line number="255" hits="12" branch="false"/>
<line number="256" hits="12" 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="1" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="1" 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="45" branch="false"/>
<line number="49" hits="45" branch="false"/>
<line number="50" hits="45" branch="false"/>
</lines>
</method>
<method name="getGlobalSessionTimeout" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="29" branch="false"/>
</lines>
</method>
<method name="setGlobalSessionTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="4" branch="false"/>
<line number="86" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="45" branch="false"/>
<line number="49" hits="45" branch="false"/>
<line number="50" hits="45" branch="false"/>
<line number="67" hits="29" branch="false"/>
<line number="85" hits="4" branch="false"/>
<line number="86" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.AbstractValidatingSessionManager" filename="org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java" line-rate="0.8103448275862069" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="45" branch="false"/>
<line number="62" hits="45" branch="false"/>
<line number="63" hits="45" branch="false"/>
<line number="64" hits="45" 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="1" branch="false"/>
</lines>
</method>
<method name="afterSessionValidationEnabled" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="237" hits="18" branch="false"/>
</lines>
</method>
<method name="beforeSessionValidationDisabled" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="260" hits="26" 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="28" branch="false"/>
<line number="136" hits="28" 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="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="18" branch="false"/>
<line number="215" hits="18" branch="false"/>
<line number="216" hits="18" branch="false"/>
<line number="217" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="18" branch="false"/>
<line number="220" hits="18" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="26" branch="false"/>
<line number="264" hits="26" branch="false"/>
</lines>
</method>
<method name="disableSessionValidation" signature="()V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="240" hits="26" branch="false"/>
<line number="241" hits="26" branch="false"/>
<line number="242" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="14" branch="false"/>
<line number="245" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="246" hits="14" 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="14" branch="false"/>
<line number="254" hits="14" branch="false"/>
<line number="255" hits="14" branch="false"/>
<line number="257" hits="26" 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="203" branch="false"/>
<line number="116" hits="203" branch="false"/>
<line number="118" hits="203" branch="false"/>
<line number="119" hits="203" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="120" hits="203" branch="false"/>
<line number="122" hits="199" branch="false"/>
</lines>
</method>
<method name="doValidate" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="185" hits="206" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="206" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="200" branch="false"/>
</lines>
</method>
<method name="enableSessionValidation" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="224" hits="18" branch="false"/>
<line number="225" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="18" branch="false"/>
<line number="227" hits="18" branch="false"/>
<line number="228" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="229" hits="18" branch="false"/>
<line number="231" hits="18" branch="false"/>
<line number="232" hits="18" branch="false"/>
<line number="234" hits="18" branch="false"/>
</lines>
</method>
<method name="enableSessionValidationIfNecessary" signature="()V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="84" hits="231" branch="false"/>
<line number="85" hits="231" 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="18" branch="false"/>
<line number="88" hits="231" branch="false"/>
</lines>
</method>
<method name="getSessionValidationInterval" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="109" hits="18" 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="275" 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="231" 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="1" branch="false"/>
<line number="165" hits="1" 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="6" branch="false"/>
<line number="156" hits="6" branch="false"/>
<line number="157" hits="6" branch="false"/>
<line number="159" hits="6" branch="false"/>
<line number="160" hits="5" branch="false"/>
<line number="161" hits="5" 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="32" branch="false"/>
<line number="77" hits="32" branch="false"/>
</lines>
</method>
<method name="setSessionValidationSchedulerEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="11" branch="false"/>
<line number="73" hits="11" 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="206" branch="false"/>
<line number="144" hits="6" branch="false"/>
<line number="145" hits="6" branch="false"/>
<line number="146" hits="5" 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="200" branch="false"/>
<line number="151" hits="200" branch="false"/>
</lines>
</method>
<method name="validateSessions" signature="()V" line-rate="0.9565217391304348" branch-rate="0.625">
<lines>
<line number="270" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="271" hits="2" branch="false"/>
<line number="274" hits="2" branch="false"/>
<line number="276" hits="2" branch="false"/>
<line number="278" 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="279" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="283" hits="3" branch="false"/>
<line number="284" hits="3" branch="false"/>
<line number="285" hits="2" branch="false"/>
<line number="286" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="288" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="290" hits="2" branch="false"/>
<line number="292" hits="2" branch="false"/>
<line number="293" hits="1" branch="false"/>
<line number="294" hits="3" branch="false"/>
<line number="297" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="2" branch="false"/>
<line number="299" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="2" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="2" branch="false"/>
<line number="306" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="1" branch="false"/>
<line number="61" hits="45" branch="false"/>
<line number="62" hits="45" branch="false"/>
<line number="63" hits="45" branch="false"/>
<line number="64" hits="45" branch="false"/>
<line number="67" hits="231" branch="false"/>
<line number="72" hits="11" branch="false"/>
<line number="73" hits="11" branch="false"/>
<line number="76" hits="32" branch="false"/>
<line number="77" hits="32" branch="false"/>
<line number="80" hits="275" branch="false"/>
<line number="84" hits="231" branch="false"/>
<line number="85" hits="231" 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="18" branch="false"/>
<line number="88" hits="231" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="109" hits="18" branch="false"/>
<line number="114" hits="203" branch="false"/>
<line number="116" hits="203" branch="false"/>
<line number="118" hits="203" branch="false"/>
<line number="119" hits="203" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="120" hits="203" branch="false"/>
<line number="122" hits="199" branch="false"/>
<line number="135" hits="28" branch="false"/>
<line number="136" hits="28" branch="false"/>
<line number="143" hits="206" branch="false"/>
<line number="144" hits="6" branch="false"/>
<line number="145" hits="6" branch="false"/>
<line number="146" hits="5" 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="200" branch="false"/>
<line number="151" hits="200" branch="false"/>
<line number="154" hits="6" branch="false"/>
<line number="156" hits="6" branch="false"/>
<line number="157" hits="6" branch="false"/>
<line number="159" hits="6" branch="false"/>
<line number="160" hits="5" branch="false"/>
<line number="161" hits="5" branch="false"/>
<line number="164" hits="1" branch="false"/>
<line number="165" hits="1" branch="false"/>
<line number="168" hits="1" 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="206" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="206" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="200" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="212" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="18" branch="false"/>
<line number="215" hits="18" branch="false"/>
<line number="216" hits="18" branch="false"/>
<line number="217" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="18" branch="false"/>
<line number="220" hits="18" branch="false"/>
<line number="224" hits="18" branch="false"/>
<line number="225" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="18" branch="false"/>
<line number="227" hits="18" branch="false"/>
<line number="228" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="229" hits="18" branch="false"/>
<line number="231" hits="18" branch="false"/>
<line number="232" hits="18" branch="false"/>
<line number="234" hits="18" branch="false"/>
<line number="237" hits="18" branch="false"/>
<line number="240" hits="26" branch="false"/>
<line number="241" hits="26" branch="false"/>
<line number="242" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="14" branch="false"/>
<line number="245" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="246" hits="14" 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="14" branch="false"/>
<line number="254" hits="14" branch="false"/>
<line number="255" hits="14" branch="false"/>
<line number="257" hits="26" branch="false"/>
<line number="260" hits="26" branch="false"/>
<line number="263" hits="26" branch="false"/>
<line number="264" hits="26" branch="false"/>
<line number="270" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="271" hits="2" branch="false"/>
<line number="274" hits="2" branch="false"/>
<line number="276" hits="2" branch="false"/>
<line number="278" 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="279" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="283" hits="3" branch="false"/>
<line number="284" hits="3" branch="false"/>
<line number="285" hits="2" branch="false"/>
<line number="286" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="2" branch="false"/>
<line number="288" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="290" hits="2" branch="false"/>
<line number="292" hits="2" branch="false"/>
<line number="293" hits="1" branch="false"/>
<line number="294" hits="3" branch="false"/>
<line number="297" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="2" branch="false"/>
<line number="299" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="2" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="2" branch="false"/>
<line number="306" hits="2" 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="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="20" branch="false"/>
<line number="42" hits="20" 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="20" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" 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="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="41" hits="20" branch="false"/>
<line number="42" hits="20" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="20" branch="false"/>
<line number="53" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" 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="37" branch="false"/>
<line number="35" hits="37" branch="false"/>
<line number="36" hits="37" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="399" 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="37" branch="false"/>
<line number="35" hits="37" branch="false"/>
<line number="36" hits="37" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="43" hits="399" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="44" branch="false"/>
<line number="56" hits="44" branch="false"/>
<line number="57" hits="44" branch="false"/>
<line number="58" hits="44" branch="false"/>
<line number="59" hits="44" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="5" branch="false"/>
<line number="209" hits="5" 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="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="12" branch="false"/>
<line number="195" hits="12" branch="false"/>
</lines>
</method>
<method name="applyCacheManagerToSessionDAO" signature="()V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="148" hits="40" 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="1" branch="false"/>
<line number="151" hits="40" 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="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="28" branch="false"/>
<line number="177" hits="28" branch="false"/>
<line number="178" hits="28" 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="17" branch="false"/>
<line number="241" hits="17" 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="28" branch="false"/>
<line number="155" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="28" branch="false"/>
<line number="158" hits="28" branch="false"/>
<line number="159" hits="28" branch="false"/>
</lines>
</method>
<method name="getActiveSessions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="244" hits="3" branch="false"/>
<line number="245" hits="3" 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="1" 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="28" 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="203" branch="false"/>
</lines>
</method>
<method name="isDeleteInvalidSessions" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="17" 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="28" 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="111" branch="false"/>
<line number="213" hits="111" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="5" branch="false"/>
<line number="201" hits="5" branch="false"/>
<line number="202" hits="5" 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="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="183" hits="12" branch="false"/>
<line number="184" hits="12" branch="false"/>
<line number="185" hits="12" branch="false"/>
<line number="187" hits="12" branch="false"/>
<line number="188" hits="12" 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="203" branch="false"/>
<line number="217" hits="203" 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="203" branch="false"/>
<line number="223" hits="203" 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="203" 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="203" 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="38" branch="false"/>
<line number="133" hits="38" branch="false"/>
<line number="134" hits="38" 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="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
<line number="64" hits="2" 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="1" branch="false"/>
<line number="90" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="1" branch="false"/>
<line number="55" hits="44" branch="false"/>
<line number="56" hits="44" branch="false"/>
<line number="57" hits="44" branch="false"/>
<line number="58" hits="44" branch="false"/>
<line number="59" hits="44" 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="67" hits="1" branch="false"/>
<line number="78" hits="28" branch="false"/>
<line number="89" hits="1" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="111" hits="17" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="132" hits="38" branch="false"/>
<line number="133" hits="38" branch="false"/>
<line number="134" hits="38" branch="false"/>
<line number="148" hits="40" 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="1" branch="false"/>
<line number="151" hits="40" branch="false"/>
<line number="154" hits="28" branch="false"/>
<line number="155" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="28" branch="false"/>
<line number="158" hits="28" branch="false"/>
<line number="159" hits="28" branch="false"/>
<line number="163" hits="28" branch="false"/>
<line number="174" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="28" branch="false"/>
<line number="177" hits="28" branch="false"/>
<line number="178" hits="28" branch="false"/>
<line number="182" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="183" hits="12" branch="false"/>
<line number="184" hits="12" branch="false"/>
<line number="185" hits="12" branch="false"/>
<line number="187" hits="12" branch="false"/>
<line number="188" hits="12" branch="false"/>
<line number="192" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="12" branch="false"/>
<line number="195" hits="12" branch="false"/>
<line number="198" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="5" branch="false"/>
<line number="201" hits="5" branch="false"/>
<line number="202" hits="5" branch="false"/>
<line number="206" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="5" branch="false"/>
<line number="209" hits="5" branch="false"/>
<line number="212" hits="111" branch="false"/>
<line number="213" hits="111" branch="false"/>
<line number="216" hits="203" branch="false"/>
<line number="217" hits="203" 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="203" branch="false"/>
<line number="223" hits="203" 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="203" branch="false"/>
<line number="232" hits="203" branch="false"/>
<line number="236" hits="203" branch="false"/>
<line number="240" hits="17" branch="false"/>
<line number="241" hits="17" branch="false"/>
<line number="244" hits="3" branch="false"/>
<line number="245" hits="3" 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="29" branch="false"/>
<line number="51" hits="29" branch="false"/>
<line number="59" hits="29" branch="false"/>
<line number="60" hits="29" 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="29" 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="29" 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="29" branch="false"/>
<line number="73" hits="29" branch="false"/>
<line number="74" hits="29" 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="107" 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="167" 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="4" 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="28" 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="44" 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="44" branch="false"/>
<line number="153" hits="44" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="4" branch="false"/>
<line number="107" hits="3" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="10" branch="false"/>
<line number="128" hits="10" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="29" branch="false"/>
<line number="51" hits="29" branch="false"/>
<line number="59" hits="29" branch="false"/>
<line number="60" hits="29" 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="29" 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="29" 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="29" branch="false"/>
<line number="73" hits="29" branch="false"/>
<line number="74" hits="29" branch="false"/>
<line number="80" hits="167" 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="4" branch="false"/>
<line number="106" hits="4" branch="false"/>
<line number="107" hits="3" 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="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
<line number="127" hits="10" branch="false"/>
<line number="128" hits="10" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="141" hits="107" branch="false"/>
<line number="148" hits="44" 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="44" branch="false"/>
<line number="153" hits="44" branch="false"/>
<line number="159" hits="28" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="50" hits="0" branch="false"/>
<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="18" branch="false"/>
<line number="47" hits="18" branch="false"/>
<line number="53" hits="18" branch="false"/>
<line number="54" hits="18" branch="false"/>
<line number="55" hits="18" branch="false"/>
</lines>
</method>
<method name="disableSessionValidation" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="14" branch="false"/>
<line number="111" hits="14" branch="false"/>
<line number="112" hits="14" branch="false"/>
</lines>
</method>
<method name="enableSessionValidation" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="84" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="18" branch="false"/>
<line number="92" hits="18" branch="false"/>
<line number="93" hits="18" branch="false"/>
<line number="95" hits="18" 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="162" 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="18" branch="false"/>
<line number="71" hits="18" 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="1" branch="false"/>
<line number="46" hits="18" branch="false"/>
<line number="47" hits="18" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="18" branch="false"/>
<line number="54" hits="18" branch="false"/>
<line number="55" hits="18" 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="18" branch="false"/>
<line number="71" hits="18" branch="false"/>
<line number="74" hits="162" branch="false"/>
<line number="84" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="18" branch="false"/>
<line number="92" hits="18" branch="false"/>
<line number="93" hits="18" branch="false"/>
<line number="95" hits="18" 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="14" branch="false"/>
<line number="111" hits="14" branch="false"/>
<line number="112" hits="14" 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="18" 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="18" branch="false"/>
<line number="88" hits="18" branch="false"/>
<line number="89" hits="18" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="85" hits="18" branch="false"/>
<line number="87" hits="18" branch="false"/>
<line number="88" hits="18" branch="false"/>
<line number="89" hits="18" 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="18" branch="false"/>
<line number="52" hits="18" 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="1" 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="1" branch="false"/>
<line number="63" hits="1" 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="18" branch="false"/>
<line number="52" hits="18" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="63" hits="1" 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="1" 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.7727272727272727" 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="1" branch="false"/>
<line number="59" hits="1" branch="false"/>
<line number="60" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="63" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="33" branch="false"/>
<line number="96" hits="33" branch="false"/>
<line number="97" hits="33" branch="false"/>
<line number="98" hits="33" branch="false"/>
<line number="99" hits="33" 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="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="104" hits="2" 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="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="5" 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="6" branch="false"/>
<line number="209" hits="6" branch="false"/>
<line number="210" hits="6" branch="false"/>
</lines>
</method>
<method name="getAlteredFieldsBitMask" signature="()S" line-rate="1.0" branch-rate="0.625">
<lines>
<line number="513" hits="3" branch="false"/>
<line number="514" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="516" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="517" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="518" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="519" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="521" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="522" hits="3" 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="108" branch="false"/>
<line number="315" hits="108" 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="318" hits="106" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="306" hits="1" branch="false"/>
<line number="307" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="getAttributes" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="186" hits="182" branch="false"/>
</lines>
</method>
<method name="getAttributesLazy" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="297" hits="45" branch="false"/>
<line number="298" hits="45" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="21" branch="false"/>
<line number="300" hits="21" branch="false"/>
<line number="302" hits="45" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="29" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="209" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="148" hits="214" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="115" hits="2" branch="false"/>
</lines>
</method>
<method name="getStopTimestamp" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="140" hits="222" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="170" hits="217" 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="211" branch="false"/>
</lines>
</method>
<method name="isFieldPresent" signature="(SI)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="538" hits="24" 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="210" 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.5714285714285714" branch-rate="0.375">
<lines>
<line number="226" hits="206" 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="206" branch="false"/>
<line number="232" hits="206" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="206" branch="false"/>
<line number="236" hits="206" 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="242" hits="0" branch="false"/>
<line number="250" hits="206" branch="false"/>
<line number="251" hits="206" branch="false"/>
<line number="252" hits="206" 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="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>
</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/34)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
<condition number="6" type="jump" coverage="0%"/>
<condition number="7" type="jump" coverage="0%"/>
<condition number="8" type="jump" coverage="0%"/>
<condition number="9" type="jump" coverage="0%"/>
<condition number="10" type="jump" coverage="0%"/>
<condition number="11" type="jump" coverage="0%"/>
<condition number="12" type="jump" coverage="0%"/>
<condition number="13" type="jump" coverage="0%"/>
<condition number="14" type="jump" coverage="0%"/>
<condition number="15" type="jump" coverage="0%"/>
<condition number="16" 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="3" branch="false"/>
<line number="476" hits="3" branch="false"/>
<line number="478" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="482" hits="3" branch="false"/>
<line number="484" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="3" branch="false"/>
<line number="490" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="3" branch="false"/>
<line number="493" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="1" branch="false"/>
<line number="496" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="497" hits="1" branch="false"/>
<line number="499" hits="3" 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="3" 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="28" branch="false"/>
<line number="331" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="332" hits="3" branch="false"/>
<line number="334" hits="25" 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="45" 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="45" branch="false"/>
<line number="327" hits="45" 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="21" branch="false"/>
<line number="191" hits="21" branch="false"/>
</lines>
</method>
<method name="setExpired" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="6" branch="false"/>
<line number="167" hits="6" 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="30" branch="false"/>
<line number="112" hits="30" 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="13" branch="false"/>
<line number="153" hits="13" 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="1" branch="false"/>
<line number="120" hits="1" 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="32" branch="false"/>
<line number="175" hits="32" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="198" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="18" branch="false"/>
<line number="201" hits="18" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="423" hits="28" branch="false"/>
<line number="424" hits="28" branch="false"/>
<line number="425" hits="28" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="194" hits="1" branch="false"/>
<line number="195" hits="1" branch="false"/>
</lines>
</method>
<method name="validate" signature="()V" line-rate="0.8571428571428571" branch-rate="0.6666666666666666">
<lines>
<line number="265" hits="206" 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="206" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="275" hits="6" branch="false"/>
<line number="278" hits="6" branch="false"/>
<line number="279" hits="6" branch="false"/>
<line number="281" hits="6" branch="false"/>
<line number="283" hits="6" branch="false"/>
<line number="284" hits="6" branch="false"/>
<line number="289" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="6" branch="false"/>
<line number="292" hits="6" branch="false"/>
<line number="294" hits="200" 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="3" branch="false"/>
<line number="437" hits="3" branch="false"/>
<line number="438" hits="3" branch="false"/>
<line number="439" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="443" hits="3" branch="false"/>
<line number="445" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="3" branch="false"/>
<line number="451" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="452" hits="3" branch="false"/>
<line number="454" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="455" hits="1" branch="false"/>
<line number="457" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="458" hits="1" branch="false"/>
<line number="460" hits="3" 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="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="1" branch="false"/>
<line number="59" hits="1" branch="false"/>
<line number="60" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="63" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" branch="false"/>
<line number="95" hits="33" branch="false"/>
<line number="96" hits="33" branch="false"/>
<line number="97" hits="33" branch="false"/>
<line number="98" hits="33" branch="false"/>
<line number="99" hits="33" branch="false"/>
<line number="102" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="104" hits="2" branch="false"/>
<line number="107" hits="209" branch="false"/>
<line number="111" hits="30" branch="false"/>
<line number="112" hits="30" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="119" hits="1" branch="false"/>
<line number="120" hits="1" branch="false"/>
<line number="140" hits="222" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="148" hits="214" branch="false"/>
<line number="152" hits="13" branch="false"/>
<line number="153" hits="13" branch="false"/>
<line number="162" hits="211" branch="false"/>
<line number="166" hits="6" branch="false"/>
<line number="167" hits="6" branch="false"/>
<line number="170" hits="217" branch="false"/>
<line number="174" hits="32" branch="false"/>
<line number="175" hits="32" branch="false"/>
<line number="178" hits="29" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="186" hits="182" branch="false"/>
<line number="190" hits="21" branch="false"/>
<line number="191" hits="21" branch="false"/>
<line number="194" hits="1" branch="false"/>
<line number="195" hits="1" branch="false"/>
<line number="198" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="18" branch="false"/>
<line number="201" hits="18" branch="false"/>
<line number="204" hits="210" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="208" hits="6" branch="false"/>
<line number="209" hits="6" branch="false"/>
<line number="210" hits="6" branch="false"/>
<line number="216" 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="226" hits="206" 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="206" branch="false"/>
<line number="232" hits="206" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="206" branch="false"/>
<line number="236" hits="206" 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="242" hits="0" branch="false"/>
<line number="250" hits="206" branch="false"/>
<line number="251" hits="206" branch="false"/>
<line number="252" hits="206" 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="206" 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="206" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="275" hits="6" branch="false"/>
<line number="278" hits="6" branch="false"/>
<line number="279" hits="6" branch="false"/>
<line number="281" hits="6" branch="false"/>
<line number="283" hits="6" branch="false"/>
<line number="284" hits="6" branch="false"/>
<line number="289" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="6" branch="false"/>
<line number="292" hits="6" branch="false"/>
<line number="294" hits="200" branch="false"/>
<line number="297" hits="45" branch="false"/>
<line number="298" hits="45" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="21" branch="false"/>
<line number="300" hits="21" branch="false"/>
<line number="302" hits="45" branch="false"/>
<line number="306" hits="1" branch="false"/>
<line number="307" hits="1" 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="1" branch="false"/>
<line number="314" hits="108" branch="false"/>
<line number="315" hits="108" 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="318" hits="106" branch="false"/>
<line number="322" hits="45" 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="45" branch="false"/>
<line number="327" hits="45" branch="false"/>
<line number="330" hits="28" branch="false"/>
<line number="331" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="332" hits="3" branch="false"/>
<line number="334" hits="25" branch="false"/>
<line number="352" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="5" 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/34)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
<condition number="6" type="jump" coverage="0%"/>
<condition number="7" type="jump" coverage="0%"/>
<condition number="8" type="jump" coverage="0%"/>
<condition number="9" type="jump" coverage="0%"/>
<condition number="10" type="jump" coverage="0%"/>
<condition number="11" type="jump" coverage="0%"/>
<condition number="12" type="jump" coverage="0%"/>
<condition number="13" type="jump" coverage="0%"/>
<condition number="14" type="jump" coverage="0%"/>
<condition number="15" type="jump" coverage="0%"/>
<condition number="16" 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="28" branch="false"/>
<line number="424" hits="28" branch="false"/>
<line number="425" hits="28" branch="false"/>
<line number="436" hits="3" branch="false"/>
<line number="437" hits="3" branch="false"/>
<line number="438" hits="3" branch="false"/>
<line number="439" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="443" hits="3" branch="false"/>
<line number="445" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="3" branch="false"/>
<line number="451" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="452" hits="3" branch="false"/>
<line number="454" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="455" hits="1" branch="false"/>
<line number="457" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="458" hits="1" branch="false"/>
<line number="460" hits="3" 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="3" branch="false"/>
<line number="475" hits="3" branch="false"/>
<line number="476" hits="3" branch="false"/>
<line number="478" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="482" hits="3" branch="false"/>
<line number="484" hits="3" 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="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="3" branch="false"/>
<line number="490" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="3" branch="false"/>
<line number="493" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="1" branch="false"/>
<line number="496" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="497" hits="1" branch="false"/>
<line number="499" hits="3" 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="3" branch="false"/>
<line number="513" hits="3" branch="false"/>
<line number="514" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="516" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="517" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="518" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="519" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="521" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="522" hits="3" branch="false"/>
<line number="538" hits="24" 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="44" 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="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="39" hits="20" branch="false"/>
<line number="40" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="41" hits="1" branch="false"/>
<line number="44" hits="26" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="44" branch="false"/>
<line number="38" hits="27" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="39" hits="20" branch="false"/>
<line number="40" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="41" hits="1" branch="false"/>
<line number="44" hits="26" 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="45" branch="false"/>
<line number="59" hits="45" branch="false"/>
<line number="60" hits="45" 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="27" branch="false"/>
<line number="147" hits="27" 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="27" branch="false"/>
<line number="117" hits="27" branch="false"/>
<line number="118" hits="27" 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="27" 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="27" 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="197" branch="false"/>
<line number="169" hits="197" 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="197" 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="27" 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="27" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="58" hits="45" branch="false"/>
<line number="59" hits="45" branch="false"/>
<line number="60" hits="45" 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="27" 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="27" branch="false"/>
<line number="116" hits="27" branch="false"/>
<line number="117" hits="27" branch="false"/>
<line number="118" hits="27" branch="false"/>
<line number="128" hits="27" 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="27" branch="false"/>
<line number="146" hits="27" branch="false"/>
<line number="147" hits="27" branch="false"/>
<line number="168" hits="197" branch="false"/>
<line number="169" hits="197" 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="197" 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="1" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="74" hits="1" 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="5" 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="5" branch="false"/>
<line number="232" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="5" branch="false"/>
<line number="236" hits="5" 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="5" branch="false"/>
<line number="248" hits="5" 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="1" branch="false"/>
<line number="185" hits="1" branch="false"/>
<line number="186" hits="1" 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="1" branch="false"/>
<line number="169" hits="1" branch="false"/>
<line number="170" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="1" branch="false"/>
<line number="172" hits="1" branch="false"/>
<line number="174" hits="1" 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="1" 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="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="1" branch="false"/>
<line number="154" hits="9" branch="false"/>
</lines>
</method>
<method name="getActiveSessionsCacheName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="104" hits="1" 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="1" 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="4" branch="false"/>
<line number="199" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="200" hits="4" branch="false"/>
<line number="201" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="4" branch="false"/>
<line number="205" hits="4" 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="4" 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="4" branch="false"/>
<line number="260" hits="4" 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="4" 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="2" branch="false"/>
<line number="84" hits="2" 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="4" branch="false"/>
<line number="278" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="280" hits="4" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="285" hits="0" branch="false"/>
<line number="287" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="68" hits="1" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="74" hits="1" branch="false"/>
<line number="83" hits="2" branch="false"/>
<line number="84" hits="2" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="104" hits="1" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="126" hits="1" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="151" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="1" branch="false"/>
<line number="154" hits="9" branch="false"/>
<line number="168" hits="1" branch="false"/>
<line number="169" hits="1" branch="false"/>
<line number="170" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="1" branch="false"/>
<line number="172" hits="1" branch="false"/>
<line number="174" hits="1" branch="false"/>
<line number="184" hits="1" branch="false"/>
<line number="185" hits="1" branch="false"/>
<line number="186" hits="1" branch="false"/>
<line number="198" hits="4" branch="false"/>
<line number="199" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="200" hits="4" branch="false"/>
<line number="201" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="4" branch="false"/>
<line number="205" hits="4" branch="false"/>
<line number="217" hits="4" branch="false"/>
<line number="228" hits="5" 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="5" branch="false"/>
<line number="232" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="5" branch="false"/>
<line number="236" hits="5" branch="false"/>
<line number="247" hits="5" branch="false"/>
<line number="248" hits="5" branch="false"/>
<line number="259" hits="4" branch="false"/>
<line number="260" hits="4" 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="4" branch="false"/>
<line number="277" hits="4" branch="false"/>
<line number="278" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="280" hits="4" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="285" hits="0" branch="false"/>
<line number="287" hits="4" 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="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="61" hits="1" 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="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" 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="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="1" branch="false"/>
<line number="55" hits="1" branch="false"/>
<line number="61" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="77" hits="4" 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="1" 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="1" 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="45" 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="27" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="45" branch="false"/>
<line number="41" hits="27" 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="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="44" branch="false"/>
<line number="63" hits="44" branch="false"/>
<line number="64" hits="44" 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="16" 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="16" branch="false"/>
<line number="93" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="16" branch="false"/>
<line number="96" hits="16" 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="26" branch="false"/>
<line number="68" hits="26" branch="false"/>
<line number="69" hits="26" branch="false"/>
<line number="70" hits="26" 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="197" branch="false"/>
</lines>
</method>
<method name="getActiveSessions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="1" branch="false"/>
<line number="103" hits="2" 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="130" 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="130" 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="104" branch="false"/>
<line number="86" hits="104" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="58" hits="1" 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="67" hits="26" branch="false"/>
<line number="68" hits="26" branch="false"/>
<line number="69" hits="26" branch="false"/>
<line number="70" hits="26" branch="false"/>
<line number="74" hits="130" 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="130" branch="false"/>
<line number="81" hits="197" branch="false"/>
<line number="85" hits="104" branch="false"/>
<line number="86" hits="104" branch="false"/>
<line number="89" hits="16" 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="16" branch="false"/>
<line number="93" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="16" branch="false"/>
<line number="96" hits="16" branch="false"/>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="1" branch="false"/>
<line number="103" hits="2" 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.28169014084507044" 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="1" branch="false"/>
<line number="53" hits="1" 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="80" branch="false"/>
<line number="56" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="57" hits="1" branch="false"/>
<line number="59" hits="79" branch="false"/>
<line number="61" hits="80" 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="41" branch="false"/>
<line number="68" hits="41" branch="false"/>
<line number="69" hits="41" 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="123" 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="123" 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="123" branch="false"/>
<line number="107" hits="123" branch="false"/>
<line number="108" hits="123" 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="1" 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="1" 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="1" 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="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" 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="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="127" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="42" branch="false"/>
<line number="129" hits="42" branch="false"/>
<line number="130" hits="42" branch="false"/>
<line number="132" hits="42" branch="false"/>
</lines>
</method>
<method name="asList" signature="()Ljava/util/List;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="169" hits="1" branch="false"/>
<line number="170" hits="1" 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="1" branch="false"/>
</lines>
</method>
<method name="asSet" signature="()Ljava/util/Set;" line-rate="0.8" branch-rate="0.625">
<lines>
<line number="177" hits="66" 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="66" branch="false"/>
<line number="181" hits="66" branch="false"/>
<line number="182" hits="66" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="67" branch="false"/>
<line number="184" hits="67" branch="false"/>
<line number="185" hits="66" 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="66" 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="109" 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="109" branch="false"/>
<line number="196" hits="109" 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="8" branch="false"/>
<line number="199" hits="109" branch="false"/>
</lines>
</method>
<method name="getPrimaryPrincipal" signature="()Ljava/lang/Object;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="93" hits="31" 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="31" 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="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="73" hits="122" branch="false"/>
<line number="75" hits="124" branch="false"/>
<line number="76" hits="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="123" branch="false"/>
<line number="78" hits="123" branch="false"/>
<line number="80" hits="124" branch="false"/>
</lines>
</method>
<method name="getRealmNames" signature="()Ljava/util/Set;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="203" hits="82" 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="82" 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="284" 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="31" 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="5" 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="5" branch="false"/>
<line number="139" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="141" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="142" hits="5" branch="false"/>
<line number="144" hits="4" 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="148" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="34" branch="false"/>
<line number="253" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="34" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="259" hits="148" 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="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="55" hits="80" branch="false"/>
<line number="56" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="57" hits="1" branch="false"/>
<line number="59" hits="79" branch="false"/>
<line number="61" hits="80" 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="41" branch="false"/>
<line number="68" hits="41" branch="false"/>
<line number="69" hits="41" branch="false"/>
<line number="72" hits="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="73" hits="122" branch="false"/>
<line number="75" hits="124" branch="false"/>
<line number="76" hits="124" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="123" branch="false"/>
<line number="78" hits="123" branch="false"/>
<line number="80" hits="124" branch="false"/>
<line number="93" hits="31" 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="31" branch="false"/>
<line number="100" hits="123" 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="123" 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="123" branch="false"/>
<line number="107" hits="123" branch="false"/>
<line number="108" hits="123" branch="false"/>
<line number="111" hits="1" 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="1" 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="1" 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="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" branch="false"/>
<line number="125" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="127" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="42" branch="false"/>
<line number="129" hits="42" branch="false"/>
<line number="130" hits="42" branch="false"/>
<line number="132" hits="42" branch="false"/>
<line number="135" hits="5" 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="5" branch="false"/>
<line number="139" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="141" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="142" hits="5" branch="false"/>
<line number="144" hits="4" 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="1" branch="false"/>
<line number="170" hits="1" 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="1" branch="false"/>
<line number="177" hits="66" 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="66" branch="false"/>
<line number="181" hits="66" branch="false"/>
<line number="182" hits="66" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="67" branch="false"/>
<line number="184" hits="67" branch="false"/>
<line number="185" hits="66" 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="66" branch="false"/>
<line number="192" hits="109" 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="109" branch="false"/>
<line number="196" hits="109" 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="8" branch="false"/>
<line number="199" hits="109" branch="false"/>
<line number="203" hits="82" 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="82" branch="false"/>
<line number="211" hits="284" 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="31" 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="148" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="34" branch="false"/>
<line number="253" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="34" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="259" hits="148" 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>
</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>
</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>
</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>
</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="103" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="115" hits="0" branch="false"/>
<line number="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="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="12" branch="false"/>
<line number="628" hits="12" 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="29" branch="false"/>
<line number="637" hits="29" 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="29" branch="false"/>
<line number="641" hits="29" branch="false"/>
<line number="642" hits="29" 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="29" branch="false"/>
<line number="647" hits="29" 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="29" 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="29" 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="12" branch="false"/>
<line number="628" hits="12" branch="false"/>
<line number="636" hits="29" branch="false"/>
<line number="637" hits="29" 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="29" branch="false"/>
<line number="641" hits="29" branch="false"/>
<line number="642" hits="29" 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="29" branch="false"/>
<line number="647" hits="29" branch="false"/>
<line number="656" hits="29" 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="29" 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.7755681818181818" 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="1" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="58" hits="1" branch="false"/>
<line number="60" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="80" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="48" branch="false"/>
<line number="84" hits="48" 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="46" branch="false"/>
<line number="88" hits="46" 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="121" 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="46" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="247" hits="46" 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="92" 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="92" 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="224" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="46" 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="282" 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="46" branch="false"/>
<line number="194" hits="46" 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="46" branch="false"/>
<line number="212" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="215" hits="29" branch="false"/>
<line number="216" hits="29" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="220" hits="29" branch="false"/>
<line number="221" hits="29" 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="46" branch="false"/>
</lines>
</method>
<method name="resolveHost" signature="()Ljava/lang/String;" line-rate="0.9" branch-rate="0.75">
<lines>
<line number="257" hits="46" branch="false"/>
<line number="259" hits="46" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="46" branch="false"/>
<line number="262" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="263" hits="17" branch="false"/>
<line number="267" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="45" branch="false"/>
<line number="269" hits="45" 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="46" 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="92" branch="false"/>
<line number="145" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="147" hits="92" branch="false"/>
<line number="148" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="34" branch="false"/>
<line number="153" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="58" branch="false"/>
<line number="155" hits="58" 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="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="58" branch="false"/>
<line number="163" hits="58" 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="92" 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="92" branch="false"/>
<line number="100" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="30" branch="false"/>
<line number="106" hits="30" branch="false"/>
<line number="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="4" branch="false"/>
<line number="111" hits="26" branch="false"/>
<line number="113" hits="92" 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="224" branch="false"/>
<line number="182" hits="224" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="184" hits="224" branch="false"/>
<line number="185" hits="224" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="50" branch="false"/>
<line number="189" hits="224" branch="false"/>
</lines>
</method>
<method name="setAuthenticated" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="207" hits="17" branch="false"/>
<line number="208" hits="17" 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="17" branch="false"/>
<line number="236" hits="17" 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="17" branch="false"/>
<line number="244" hits="17" 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="33" branch="false"/>
<line number="96" hits="33" 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="17" branch="false"/>
<line number="130" hits="17" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="1" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="58" hits="1" branch="false"/>
<line number="60" hits="1" branch="false"/>
<line number="62" hits="1" branch="false"/>
<line number="64" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="1" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="80" hits="1" branch="false"/>
<line number="83" hits="48" branch="false"/>
<line number="84" hits="48" branch="false"/>
<line number="87" hits="46" branch="false"/>
<line number="88" hits="46" branch="false"/>
<line number="91" hits="92" branch="false"/>
<line number="95" hits="33" branch="false"/>
<line number="96" hits="33" branch="false"/>
<line number="99" hits="92" branch="false"/>
<line number="100" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="30" branch="false"/>
<line number="106" hits="30" branch="false"/>
<line number="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="4" branch="false"/>
<line number="111" hits="26" branch="false"/>
<line number="113" hits="92" branch="false"/>
<line number="117" hits="46" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="125" hits="282" branch="false"/>
<line number="129" hits="17" branch="false"/>
<line number="130" hits="17" branch="false"/>
<line number="133" hits="92" 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="92" branch="false"/>
<line number="145" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="147" hits="92" branch="false"/>
<line number="148" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="34" branch="false"/>
<line number="153" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="58" branch="false"/>
<line number="155" hits="58" 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="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="58" branch="false"/>
<line number="163" hits="58" 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="92" branch="false"/>
<line number="173" hits="224" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="181" hits="224" branch="false"/>
<line number="182" hits="224" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="184" hits="224" branch="false"/>
<line number="185" hits="224" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="50" branch="false"/>
<line number="189" hits="224" branch="false"/>
<line number="193" hits="46" branch="false"/>
<line number="194" hits="46" 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="17" branch="false"/>
<line number="208" hits="17" branch="false"/>
<line number="211" hits="46" branch="false"/>
<line number="212" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="215" hits="29" branch="false"/>
<line number="216" hits="29" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="220" hits="29" branch="false"/>
<line number="221" hits="29" 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="46" branch="false"/>
<line number="231" hits="121" branch="false"/>
<line number="235" hits="17" branch="false"/>
<line number="236" hits="17" branch="false"/>
<line number="239" hits="46" branch="false"/>
<line number="243" hits="17" branch="false"/>
<line number="244" hits="17" branch="false"/>
<line number="247" hits="46" 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="46" branch="false"/>
<line number="259" hits="46" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="46" branch="false"/>
<line number="262" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="263" hits="17" branch="false"/>
<line number="267" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="45" branch="false"/>
<line number="269" hits="45" 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="46" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.DelegatingSubject" filename="org/apache/shiro/subject/support/DelegatingSubject.java" line-rate="0.7213114754098361" 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="19" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="75" hits="1" 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="1" branch="false"/>
<line number="91" hits="1" 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="3" branch="false"/>
<line number="96" hits="3" 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="50" branch="false"/>
<line number="101" hits="50" 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="50" branch="false"/>
<line number="105" hits="50" branch="false"/>
<line number="106" hits="50" branch="false"/>
<line number="107" hits="50" branch="false"/>
<line number="108" hits="50" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="109" hits="1" branch="false"/>
<line number="111" hits="50" branch="false"/>
<line number="112" hits="50" 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.75" 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="4" branch="false"/>
<line number="199" hits="4" 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="4" 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="4" 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="1" 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="1" 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="1" 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="1" 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="1" 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="31" branch="false"/>
<line number="476" hits="31" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="477" hits="10" branch="false"/>
<line number="479" hits="31" branch="false"/>
</lines>
</method>
<method name="clearRunAsIdentitiesInternal" signature="()V" line-rate="0.6" branch-rate="1.0">
<lines>
<line number="353" hits="30" branch="false"/>
<line number="354" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="357" hits="30" branch="false"/>
<line number="358" hits="30" 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="20" branch="false"/>
<line number="344" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="1" branch="false"/>
<line number="347" hits="20" 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="38" 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="38" 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="2" branch="false"/>
<line number="391" hits="2" branch="false"/>
<line number="392" hits="2" 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="1" branch="false"/>
<line number="383" hits="1" 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="20" 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="5" branch="false"/>
<line number="447" hits="5" branch="false"/>
<line number="448" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="449" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="451" hits="2" branch="false"/>
<line number="454" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="1" branch="false"/>
<line number="458" hits="5" 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="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="10" branch="false"/>
<line number="142" hits="3" branch="false"/>
</lines>
</method>
<method name="getPrincipal" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="149" hits="13" 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="126" branch="false"/>
<line number="154" hits="126" 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="187" branch="false"/>
<line number="468" hits="187" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="84" branch="false"/>
<line number="471" hits="103" 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="6" 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="31" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Z)Lorg/apache/shiro/session/Session;" line-rate="0.8181818181818182" branch-rate="0.7857142857142857">
<lines>
<line number="316" hits="476" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="476" 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="322" hits="476" 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="20" 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="331" hits="0" branch="false"/>
<line number="334" hits="20" branch="false"/>
<line number="335" hits="20" branch="false"/>
<line number="336" hits="20" branch="false"/>
<line number="337" hits="20" branch="false"/>
<line number="339" hits="476" 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="29" 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="21" 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="51" 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="2" 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="52" branch="false"/>
<line number="442" hits="52" 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="20" 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="21" branch="false"/>
<line number="256" hits="21" branch="false"/>
<line number="260" hits="17" branch="false"/>
<line number="262" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="263" hits="17" branch="false"/>
<line number="265" hits="17" branch="false"/>
<line number="266" hits="17" branch="false"/>
<line number="267" hits="17" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="17" 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="17" branch="false"/>
<line number="277" hits="17" branch="false"/>
<line number="278" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="17" branch="false"/>
<line number="281" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="1" branch="false"/>
<line number="284" hits="17" branch="false"/>
<line number="285" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="17" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="17" branch="false"/>
</lines>
</method>
<method name="logout" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="362" hits="9" branch="false"/>
<line number="363" hits="9" branch="false"/>
<line number="365" hits="9" branch="false"/>
<line number="366" hits="9" branch="false"/>
<line number="367" hits="9" branch="false"/>
<line number="373" hits="9" branch="false"/>
<line number="374" hits="9" 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="2" branch="false"/>
<line number="498" hits="2" branch="false"/>
<line number="499" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="2" branch="false"/>
<line number="502" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="504" hits="1" branch="false"/>
<line number="505" hits="1" branch="false"/>
<line number="508" hits="1" branch="false"/>
<line number="512" hits="2" 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="2" 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="2" branch="false"/>
<line number="487" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="488" hits="1" branch="false"/>
<line number="490" hits="2" branch="false"/>
<line number="491" hits="2" branch="false"/>
<line number="492" hits="2" branch="false"/>
<line number="493" hits="2" 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="2" branch="false"/>
</lines>
</method>
<method name="runAs" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="430" hits="2" 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="435" hits="0" branch="false"/>
<line number="437" hits="2" branch="false"/>
<line number="438" hits="2" branch="false"/>
</lines>
</method>
<method name="sessionStopped" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="377" hits="18" branch="false"/>
<line number="378" hits="18" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="71" hits="19" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="91" hits="1" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="96" hits="3" branch="false"/>
<line number="100" hits="50" branch="false"/>
<line number="101" hits="50" 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="50" branch="false"/>
<line number="105" hits="50" branch="false"/>
<line number="106" hits="50" branch="false"/>
<line number="107" hits="50" branch="false"/>
<line number="108" hits="50" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="109" hits="1" branch="false"/>
<line number="111" hits="50" branch="false"/>
<line number="112" hits="50" branch="false"/>
<line number="115" hits="38" 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="38" branch="false"/>
<line number="122" hits="6" branch="false"/>
<line number="126" hits="29" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="20" branch="false"/>
<line number="139" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="10" branch="false"/>
<line number="142" hits="3" branch="false"/>
<line number="149" hits="13" branch="false"/>
<line number="153" hits="126" branch="false"/>
<line number="154" hits="126" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="158" hits="2" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="191" hits="4" branch="false"/>
<line number="199" hits="4" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="204" hits="1" 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="1" 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="21" 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="1" 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="1" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="21" branch="false"/>
<line number="256" hits="21" branch="false"/>
<line number="260" hits="17" branch="false"/>
<line number="262" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="263" hits="17" branch="false"/>
<line number="265" hits="17" branch="false"/>
<line number="266" hits="17" branch="false"/>
<line number="267" hits="17" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="17" 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="17" branch="false"/>
<line number="277" hits="17" branch="false"/>
<line number="278" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="17" branch="false"/>
<line number="281" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="1" branch="false"/>
<line number="284" hits="17" branch="false"/>
<line number="285" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="17" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="17" branch="false"/>
<line number="293" hits="51" 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="20" branch="false"/>
<line number="312" hits="31" branch="false"/>
<line number="316" hits="476" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="476" 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="322" hits="476" 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="20" 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="331" hits="0" branch="false"/>
<line number="334" hits="20" branch="false"/>
<line number="335" hits="20" branch="false"/>
<line number="336" hits="20" branch="false"/>
<line number="337" hits="20" branch="false"/>
<line number="339" hits="476" branch="false"/>
<line number="343" hits="20" branch="false"/>
<line number="344" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="1" branch="false"/>
<line number="347" hits="20" branch="false"/>
<line number="353" hits="30" branch="false"/>
<line number="354" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="357" hits="30" branch="false"/>
<line number="358" hits="30" branch="false"/>
<line number="362" hits="9" branch="false"/>
<line number="363" hits="9" branch="false"/>
<line number="365" hits="9" branch="false"/>
<line number="366" hits="9" branch="false"/>
<line number="367" hits="9" branch="false"/>
<line number="373" hits="9" branch="false"/>
<line number="374" hits="9" branch="false"/>
<line number="377" hits="18" branch="false"/>
<line number="378" hits="18" branch="false"/>
<line number="381" hits="1" branch="false"/>
<line number="383" hits="1" branch="false"/>
<line number="384" hits="0" branch="false"/>
<line number="385" hits="0" branch="false"/>
<line number="390" hits="2" branch="false"/>
<line number="391" hits="2" branch="false"/>
<line number="392" hits="2" branch="false"/>
<line number="395" hits="1" branch="false"/>
<line number="399" hits="4" 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="4" branch="false"/>
<line number="430" hits="2" 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="435" hits="0" branch="false"/>
<line number="437" hits="2" branch="false"/>
<line number="438" hits="2" branch="false"/>
<line number="441" hits="52" branch="false"/>
<line number="442" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="446" hits="5" branch="false"/>
<line number="447" hits="5" branch="false"/>
<line number="448" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="449" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="451" hits="2" branch="false"/>
<line number="454" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="1" branch="false"/>
<line number="458" hits="5" branch="false"/>
<line number="462" hits="2" branch="false"/>
<line number="467" hits="187" branch="false"/>
<line number="468" hits="187" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="84" branch="false"/>
<line number="471" hits="103" branch="false"/>
<line number="475" hits="31" branch="false"/>
<line number="476" hits="31" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="477" hits="10" branch="false"/>
<line number="479" hits="31" branch="false"/>
<line number="482" hits="2" 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="2" branch="false"/>
<line number="487" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="488" hits="1" branch="false"/>
<line number="490" hits="2" branch="false"/>
<line number="491" hits="2" branch="false"/>
<line number="492" hits="2" branch="false"/>
<line number="493" hits="2" branch="false"/>
<line number="496" hits="2" branch="false"/>
<line number="498" hits="2" branch="false"/>
<line number="499" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="2" branch="false"/>
<line number="502" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="504" hits="1" branch="false"/>
<line number="505" hits="1" branch="false"/>
<line number="508" hits="1" branch="false"/>
<line number="512" hits="2" 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="38" branch="false"/>
<line number="414" hits="38" branch="false"/>
<line number="415" hits="38" branch="false"/>
<line number="416" hits="38" 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="38" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="419" hits="18" branch="false"/>
<line number="420" hits="18" branch="false"/>
<line number="421" hits="18" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="409" hits="38" branch="false"/>
<line number="413" hits="38" branch="false"/>
<line number="414" hits="38" branch="false"/>
<line number="415" hits="38" branch="false"/>
<line number="416" hits="38" branch="false"/>
<line number="419" hits="18" branch="false"/>
<line number="420" hits="18" branch="false"/>
<line number="421" hits="18" 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="1" branch="false"/>
<line number="67" hits="1" 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="1" branch="false"/>
<line number="70" hits="1" 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="1" branch="false"/>
<line number="74" hits="1" 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="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
</lines>
</method>
<method name="call" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="82" hits="1" branch="false"/>
<line number="83" hits="1" branch="false"/>
<line number="85" hits="1" 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="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="66" hits="1" branch="false"/>
<line number="67" hits="1" branch="false"/>
<line number="69" hits="1" branch="false"/>
<line number="70" hits="1" 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="1" branch="false"/>
<line number="74" hits="1" 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="1" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="82" hits="1" branch="false"/>
<line number="83" hits="1" branch="false"/>
<line number="85" hits="1" branch="false"/>
<line number="90" hits="1" 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="4" branch="false"/>
<line number="71" hits="4" 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="4" branch="false"/>
<line number="83" hits="4" 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="4" branch="false"/>
<line number="87" hits="4" 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="4" branch="false"/>
<line number="91" hits="4" 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="2" branch="false"/>
<line number="121" hits="2" branch="false"/>
</lines>
</method>
<method name="run" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="110" hits="2" branch="false"/>
<line number="111" hits="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="70" hits="4" branch="false"/>
<line number="71" hits="4" branch="false"/>
<line number="82" hits="4" branch="false"/>
<line number="83" hits="4" 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="4" branch="false"/>
<line number="87" hits="4" 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="4" branch="false"/>
<line number="91" hits="4" branch="false"/>
<line number="107" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="110" hits="2" branch="false"/>
<line number="111" hits="2" branch="false"/>
<line number="112" hits="2" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="121" hits="2" 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="7" branch="false"/>
<line number="56" hits="7" 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="7" branch="false"/>
<line number="61" hits="7" branch="false"/>
<line number="62" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="6" branch="false"/>
<line number="65" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="7" branch="false"/>
<line number="69" hits="7" branch="false"/>
</lines>
</method>
<method name="bind" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="5" branch="false"/>
<line number="91" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="93" hits="1" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="96" hits="5" branch="false"/>
<line number="98" hits="5" branch="false"/>
<line number="99" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="4" branch="false"/>
<line number="102" hits="5" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="2" branch="false"/>
</lines>
</method>
<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="3" branch="false"/>
<line number="111" hits="3" 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="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="55" hits="7" branch="false"/>
<line number="56" hits="7" 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="7" branch="false"/>
<line number="61" hits="7" branch="false"/>
<line number="62" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="6" branch="false"/>
<line number="65" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="66" hits="1" branch="false"/>
<line number="68" hits="7" branch="false"/>
<line number="69" hits="7" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="90" hits="5" branch="false"/>
<line number="91" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="93" hits="1" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="96" hits="5" branch="false"/>
<line number="98" hits="5" branch="false"/>
<line number="99" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="4" branch="false"/>
<line number="102" hits="5" branch="false"/>
<line number="110" hits="3" branch="false"/>
<line number="111" hits="3" 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="3" branch="false"/>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="2" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.util" line-rate="0.422360248447205" 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="23" branch="false"/>
<line number="32" hits="23" branch="false"/>
<line number="33" hits="23" branch="false"/>
</lines>
</method>
<method name="getInstance" signature="()Ljava/lang/Object;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="45" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="47" hits="12" branch="false"/>
<line number="49" hits="12" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="12" 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="12" branch="false"/>
</lines>
</method>
<method name="isSingleton" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="12" 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="23" branch="false"/>
<line number="32" hits="23" branch="false"/>
<line number="33" hits="23" branch="false"/>
<line number="36" hits="12" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="45" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="47" hits="12" branch="false"/>
<line number="49" hits="12" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="12" 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="12" 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/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" 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/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="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/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" 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/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="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.46153846153846156" 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.5" branch-rate="0.5">
<lines>
<line number="163" hits="45" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="8" branch="false"/>
<line number="166" hits="37" 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="170" hits="0" branch="false"/>
<line number="172" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="174" hits="35" 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="35" 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="35" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="35" 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="40" 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="125" 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="37" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="73" hits="0" branch="false"/>
<line number="82" hits="125" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="104" hits="40" 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="37" branch="false"/>
<line number="163" hits="45" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="8" branch="false"/>
<line number="166" hits="37" 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="170" hits="0" branch="false"/>
<line number="172" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="174" hits="35" 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="35" 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="35" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="35" 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.7272727272727273" 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="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="221" hits="0" branch="false"/>
</lines>
</method>
<method name="access$100" signature="()Lorg/slf4j/Logger;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="34" hits="102" 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="87" branch="false"/>
<line number="129" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="130" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="131" hits="17" branch="false"/>
<line number="134" hits="17" branch="false"/>
<line number="137" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="139" hits="17" branch="false"/>
<line number="142" hits="17" branch="false"/>
<line number="145" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="17" branch="false"/>
<line number="148" hits="17" branch="false"/>
<line number="151" hits="70" 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="33" 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="7" branch="false"/>
<line number="89" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="90" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="2" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="97" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="99" hits="2" branch="false"/>
<line number="102" hits="2" branch="false"/>
<line number="105" hits="7" 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="2" branch="false"/>
<line number="110" hits="7" 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="33" 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="92" 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="92" 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="33" branch="false"/>
<line number="185" hits="77" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="44" branch="false"/>
<line number="188" hits="33" branch="false"/>
<line number="189" hits="33" 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="66" 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="102" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="66" hits="1" branch="false"/>
<line number="87" hits="7" branch="false"/>
<line number="89" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="90" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="2" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="97" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="99" hits="2" branch="false"/>
<line number="102" hits="2" branch="false"/>
<line number="105" hits="7" 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="2" branch="false"/>
<line number="110" hits="7" branch="false"/>
<line number="127" hits="87" branch="false"/>
<line number="129" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="130" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="131" hits="17" branch="false"/>
<line number="134" hits="17" branch="false"/>
<line number="137" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="139" hits="17" branch="false"/>
<line number="142" hits="17" branch="false"/>
<line number="145" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="17" branch="false"/>
<line number="148" hits="17" branch="false"/>
<line number="151" hits="70" 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="66" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="172" hits="92" 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="92" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="184" hits="33" branch="false"/>
<line number="185" hits="77" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="44" branch="false"/>
<line number="188" hits="33" branch="false"/>
<line number="189" hits="33" branch="false"/>
<line number="194" hits="33" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="203" hits="33" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="221" 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="1" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="94" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="1" branch="false"/>
<line number="49" hits="94" 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="1" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="19" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="56" hits="1" branch="false"/>
<line number="59" hits="19" 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="1" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="19" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="66" hits="1" branch="false"/>
<line number="69" hits="19" 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="6" branch="false"/>
</lines>
</method>
<method name="getClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="0.2" branch-rate="0.0">
<lines>
<line number="249" hits="132" 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="11" branch="false"/>
<line number="240" hits="11" branch="false"/>
<line number="241" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="11" branch="false"/>
<line number="244" hits="11" 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="121" branch="false"/>
<line number="225" hits="121" branch="false"/>
<line number="226" hits="121" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="121" branch="false"/>
<line number="229" hits="51" branch="false"/>
<line number="230" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="231" hits="51" branch="false"/>
<line number="233" hits="70" branch="false"/>
<line number="235" hits="121" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="221" hits="6" branch="false"/>
<line number="224" hits="121" branch="false"/>
<line number="225" hits="121" branch="false"/>
<line number="226" hits="121" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="121" branch="false"/>
<line number="229" hits="51" branch="false"/>
<line number="230" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="231" hits="51" branch="false"/>
<line number="233" hits="70" branch="false"/>
<line number="235" hits="121" branch="false"/>
<line number="239" hits="11" branch="false"/>
<line number="240" hits="11" branch="false"/>
<line number="241" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="11" branch="false"/>
<line number="244" hits="11" branch="false"/>
<line number="249" hits="132" 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="112" 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="112" branch="false"/>
<line number="111" hits="112" branch="false"/>
<line number="112" hits="112" branch="false"/>
<line number="113" hits="112" 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="204" 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="1" branch="false"/>
<line number="38" hits="203" branch="false"/>
<line number="39" hits="203" branch="false"/>
<line number="40" hits="203" branch="false"/>
</lines>
</method>
<method name="computeListCapacity" signature="(I)I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="112" 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="423" 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="366" 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="543" 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="204" 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="1" branch="false"/>
<line number="38" hits="203" branch="false"/>
<line number="39" hits="203" branch="false"/>
<line number="40" hits="203" branch="false"/>
<line number="53" hits="423" 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="366" 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="543" 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="112" 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="112" branch="false"/>
<line number="111" hits="112" branch="false"/>
<line number="112" hits="112" branch="false"/>
<line number="113" hits="112" branch="false"/>
<line number="128" hits="112" 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="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" 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="89" hits="0" branch="false"/>
<line number="91" 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="117" hits="0" branch="false"/>
</lines>
</method>
<method name="getVersion" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="102" hits="0" branch="false"/>
</lines>
</method>
<method name="isAtLeastVersion14" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="131" 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="145" 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="161" 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="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" 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="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="117" 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="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="161" hits="0" branch="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="1" 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="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="58" hits="37" 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="37" branch="false"/>
<line number="69" hits="48" 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="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="17" 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="17" branch="false"/>
<line number="113" hits="17" 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="50" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="80" hits="39" 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="39" branch="false"/>
<line number="91" hits="50" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="1" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="56" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="58" hits="37" 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="37" branch="false"/>
<line number="69" hits="48" branch="false"/>
<line number="78" hits="50" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="80" hits="39" 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="39" branch="false"/>
<line number="91" hits="50" branch="false"/>
<line number="100" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="17" 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="17" branch="false"/>
<line number="113" hits="17" 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="1" 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="110" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="67" hits="21" branch="false"/>
<line number="68" hits="89" 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="110" 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="19" 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="1" branch="false"/>
<line number="98" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="18" branch="false"/>
<line number="100" hits="18" branch="false"/>
<line number="101" hits="18" 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="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="21" 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="21" branch="false"/>
<line number="84" hits="21" 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="95" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="40" hits="22" branch="false"/>
<line number="42" hits="95" 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="42" 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="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="95" branch="false"/>
<line number="62" hits="95" branch="false"/>
<line number="63" hits="42" 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="22" branch="false"/>
<line number="46" hits="22" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="36" hits="1" branch="false"/>
<line number="39" hits="95" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="40" hits="22" branch="false"/>
<line number="42" hits="95" branch="false"/>
<line number="45" hits="22" branch="false"/>
<line number="46" hits="22" branch="false"/>
<line number="57" hits="42" 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="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="95" branch="false"/>
<line number="62" hits="95" branch="false"/>
<line number="63" hits="42" branch="false"/>
<line number="66" hits="110" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="67" hits="21" branch="false"/>
<line number="68" hits="89" 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="110" branch="false"/>
<line number="74" hits="21" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="21" 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="21" branch="false"/>
<line number="84" hits="21" branch="false"/>
<line number="94" hits="19" 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="1" branch="false"/>
<line number="98" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="18" branch="false"/>
<line number="100" hits="18" branch="false"/>
<line number="101" hits="18" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.MapContext" filename="org/apache/shiro/util/MapContext.java" line-rate="0.6060606060606061" 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="114" branch="false"/>
<line number="39" hits="114" branch="false"/>
<line number="40" hits="114" 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="46" branch="false"/>
<line number="44" hits="46" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="45" hits="46" branch="false"/>
<line number="47" hits="46" 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="46" 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.75" branch-rate="0.75">
<lines>
<line number="60" hits="1061" branch="false"/>
<line number="61" hits="1061" branch="false"/>
<line number="62" hits="1061" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="181" 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="67" hits="0" branch="false"/>
<line number="69" hits="181" branch="false"/>
<line number="71" hits="1061" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="46" 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="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="84" branch="false"/>
<line number="84" hits="84" 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="102" 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="46" 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="114" branch="false"/>
<line number="39" hits="114" branch="false"/>
<line number="40" hits="114" branch="false"/>
<line number="43" hits="46" branch="false"/>
<line number="44" hits="46" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="45" hits="46" branch="false"/>
<line number="47" hits="46" branch="false"/>
<line number="60" hits="1061" branch="false"/>
<line number="61" hits="1061" branch="false"/>
<line number="62" hits="1061" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="181" 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="67" hits="0" branch="false"/>
<line number="69" hits="181" branch="false"/>
<line number="71" hits="1061" branch="false"/>
<line number="81" hits="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="84" branch="false"/>
<line number="84" hits="84" branch="false"/>
<line number="87" hits="46" branch="false"/>
<line number="91" hits="46" 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="102" 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="46" 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="17" branch="false"/>
<line number="39" hits="17" 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="17" branch="false"/>
<line number="52" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="53" hits="23" branch="false"/>
<line number="54" hits="23" branch="false"/>
<line number="55" hits="17" 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="17" branch="false"/>
<line number="44" hits="17" 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="17" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="0" branch="false"/>
<line number="38" hits="17" branch="false"/>
<line number="39" hits="17" branch="false"/>
<line number="43" hits="17" branch="false"/>
<line number="44" hits="17" 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="17" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="51" hits="17" branch="false"/>
<line number="52" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="53" hits="23" branch="false"/>
<line number="54" hits="23" branch="false"/>
<line number="55" hits="17" 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="1" 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="1" 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="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="1" branch="false"/>
<line number="45" hits="1" 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="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" 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="40" branch="false"/>
<line number="74" hits="40" branch="false"/>
<line number="75" hits="40" 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="125" branch="false"/>
<line number="54" hits="125" branch="false"/>
<line number="55" hits="125" 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="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="1" branch="false"/>
<line number="172" hits="1" 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="171" 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="37" 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="60" 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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="8" branch="false"/>
<line number="152" hits="10" 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="125" branch="false"/>
<line number="54" hits="125" branch="false"/>
<line number="55" hits="125" 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="40" branch="false"/>
<line number="74" hits="40" branch="false"/>
<line number="75" hits="40" 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="37" 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="171" branch="false"/>
<line number="138" hits="60" 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="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="8" branch="false"/>
<line number="152" hits="10" 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="1" 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="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="1" branch="false"/>
<line number="172" hits="1" 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="1" branch="false"/>
<line number="84" hits="1" 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="1" branch="false"/>
<line number="104" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/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="2" branch="false"/>
<line number="168" hits="2" branch="false"/>
<line number="169" hits="2" branch="false"/>
<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="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="2" branch="false"/>
<line number="147" hits="2" branch="false"/>
<line number="148" hits="2" branch="false"/>
<line number="150" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="1" branch="false"/>
<line number="153" hits="1" 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="1" branch="false"/>
<line number="162" hits="2" 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="3" 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="3" 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="1" branch="false"/>
<line number="250" hits="1" branch="false"/>
<line number="251" hits="1" branch="false"/>
<line number="252" hits="1" branch="false"/>
<line number="253" hits="1" 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="2" 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="2" 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="1" branch="false"/>
<line number="84" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="104" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
<line number="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="2" branch="false"/>
<line number="147" hits="2" branch="false"/>
<line number="148" hits="2" branch="false"/>
<line number="150" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="1" branch="false"/>
<line number="153" hits="1" 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="1" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="166" hits="2" branch="false"/>
<line number="168" hits="2" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="171" hits="2" branch="false"/>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
<line number="180" hits="2" 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="2" branch="false"/>
<line number="191" hits="3" 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="3" 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="1" branch="false"/>
<line number="250" hits="1" branch="false"/>
<line number="251" hits="1" branch="false"/>
<line number="252" hits="1" branch="false"/>
<line number="253" hits="1" 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="1" branch="false"/>
<line number="315" hits="1" branch="false"/>
<line number="316" hits="1" 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="1" 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="1" branch="false"/>
<line number="314" hits="1" branch="false"/>
<line number="315" hits="1" branch="false"/>
<line number="316" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.StringUtils" filename="org/apache/shiro/util/StringUtils.java" line-rate="0.5714285714285714" 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="946" branch="false"/>
<line number="147" hits="946" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="148" hits="944" branch="false"/>
<line number="149" hits="944" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="28" branch="false"/>
<line number="154" hits="946" 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="308" 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="296" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="71" hits="27" branch="false"/>
<line number="73" hits="269" branch="false"/>
<line number="74" hits="327" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="75" hits="326" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="76" hits="268" branch="false"/>
<line number="79" hits="1" 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="68" 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="76" 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="76" 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="76" 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="80" branch="false"/>
<line number="364" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="1" branch="false"/>
<line number="368" hits="79" branch="false"/>
<line number="369" hits="79" branch="false"/>
<line number="370" hits="79" branch="false"/>
<line number="372" hits="1611" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="374" hits="1532" branch="false"/>
<line number="375" hits="1532" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="378" hits="15" 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="383" hits="2" branch="false"/>
<line number="384" hits="2" branch="false"/>
<line number="386" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="3" branch="false"/>
<line number="391" hits="1517" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="392" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="393" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="394" hits="3" branch="false"/>
<line number="396" hits="1511" 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="83" branch="false"/>
<line number="398" hits="83" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="83" branch="false"/>
<line number="401" hits="83" branch="false"/>
<line number="402" hits="83" branch="false"/>
<line number="403" hits="83" branch="false"/>
<line number="404" hits="1428" branch="false"/>
<line number="407" hits="79" branch="false"/>
<line number="408" hits="79" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="409" hits="79" branch="false"/>
<line number="411" hits="79" branch="false"/>
<line number="412" hits="79" 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="26" branch="false"/>
<line number="290" hits="26" 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="26" branch="false"/>
<line number="294" hits="26" 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="26" branch="false"/>
<line number="306" hits="26" branch="false"/>
<line number="307" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="310" hits="26" branch="false"/>
<line number="313" hits="26" 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="26" 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="26" 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="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="475" hits="0" branch="false"/>
<line number="477" hits="6" branch="false"/>
<line number="478" hits="6" 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="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="179" hits="0" branch="false"/>
<line number="181" hits="34" branch="false"/>
<line number="182" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="184" hits="3" branch="false"/>
<line number="186" hits="37" branch="false"/>
<line number="188" hits="34" 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="34" 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="5" 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="5" branch="false"/>
<line number="492" hits="5" branch="false"/>
<line number="494" hits="5" branch="false"/>
<line number="495" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="5" branch="false"/>
<line number="497" hits="5" branch="false"/>
<line number="499" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="0" branch="false"/>
<line number="70" hits="296" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="71" hits="27" branch="false"/>
<line number="73" hits="269" branch="false"/>
<line number="74" hits="327" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="75" hits="326" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="76" hits="268" branch="false"/>
<line number="79" hits="1" branch="false"/>
<line number="98" hits="308" 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="946" branch="false"/>
<line number="147" hits="946" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="148" hits="944" branch="false"/>
<line number="149" hits="944" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="28" branch="false"/>
<line number="154" hits="946" branch="false"/>
<line number="165" hits="34" branch="false"/>
<line number="178" 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="179" hits="0" branch="false"/>
<line number="181" hits="34" branch="false"/>
<line number="182" hits="71" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="37" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="184" hits="3" branch="false"/>
<line number="186" hits="37" branch="false"/>
<line number="188" hits="34" 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="26" branch="false"/>
<line number="290" hits="26" 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="26" branch="false"/>
<line number="294" hits="26" 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="26" branch="false"/>
<line number="306" hits="26" branch="false"/>
<line number="307" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="310" hits="26" branch="false"/>
<line number="313" hits="26" 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="26" 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="26" branch="false"/>
<line number="326" hits="68" branch="false"/>
<line number="330" hits="76" branch="false"/>
<line number="334" hits="76" branch="false"/>
<line number="338" hits="76" branch="false"/>
<line number="363" hits="80" branch="false"/>
<line number="364" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="1" branch="false"/>
<line number="368" hits="79" branch="false"/>
<line number="369" hits="79" branch="false"/>
<line number="370" hits="79" branch="false"/>
<line number="372" hits="1611" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="374" hits="1532" branch="false"/>
<line number="375" hits="1532" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="378" hits="15" 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="383" hits="2" branch="false"/>
<line number="384" hits="2" branch="false"/>
<line number="386" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="3" branch="false"/>
<line number="391" hits="1517" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="392" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="393" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="394" hits="3" branch="false"/>
<line number="396" hits="1511" 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="83" branch="false"/>
<line number="398" hits="83" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="83" branch="false"/>
<line number="401" hits="83" branch="false"/>
<line number="402" hits="83" branch="false"/>
<line number="403" hits="83" branch="false"/>
<line number="404" hits="1428" branch="false"/>
<line number="407" hits="79" branch="false"/>
<line number="408" hits="79" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="409" hits="79" branch="false"/>
<line number="411" hits="79" branch="false"/>
<line number="412" hits="79" 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="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="475" hits="0" branch="false"/>
<line number="477" hits="6" branch="false"/>
<line number="478" hits="6" branch="false"/>
<line number="488" hits="5" 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="5" branch="false"/>
<line number="492" hits="5" branch="false"/>
<line number="494" hits="5" branch="false"/>
<line number="495" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="5" branch="false"/>
<line number="497" hits="5" branch="false"/>
<line number="499" hits="5" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ThreadContext" filename="org/apache/shiro/util/ThreadContext.java" line-rate="0.543859649122807" 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="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" 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="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="11" branch="false"/>
<line number="246" hits="11" 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="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="17" branch="false"/>
<line number="304" hits="17" branch="false"/>
</lines>
</method>
<method name="ensureResourcesInitialized" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="17" branch="false"/>
<line number="113" hits="28" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.5" branch-rate="0.6666666666666666">
<lines>
<line number="124" hits="87" 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="87" branch="false"/>
<line number="130" hits="87" 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="133" hits="0" branch="false"/>
<line number="135" hits="87" branch="false"/>
</lines>
</method>
<method name="getResources" signature="()Ljava/util/Map;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="71" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="5" 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="60" 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="27" 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="87" branch="false"/>
<line number="106" hits="87" 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.5454545454545454" branch-rate="0.5">
<lines>
<line number="154" hits="28" 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="28" 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="28" branch="false"/>
<line number="164" hits="28" branch="false"/>
<line number="166" hits="28" 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="169" hits="0" branch="false"/>
<line number="171" hits="28" branch="false"/>
</lines>
</method>
<method name="remove" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="203" hits="68" branch="false"/>
<line number="204" hits="68" 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="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="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="71" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="5" 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="87" branch="false"/>
<line number="106" hits="87" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="17" branch="false"/>
<line number="113" hits="28" branch="false"/>
<line number="124" hits="87" 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="87" branch="false"/>
<line number="130" hits="87" 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="133" hits="0" branch="false"/>
<line number="135" hits="87" branch="false"/>
<line number="154" hits="28" 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="28" 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="28" branch="false"/>
<line number="164" hits="28" branch="false"/>
<line number="166" hits="28" 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="169" hits="0" branch="false"/>
<line number="171" hits="28" 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="188" hits="0" branch="false"/>
<line number="191" hits="0" branch="false"/>
<line number="203" hits="68" branch="false"/>
<line number="204" hits="68" branch="false"/>
<line number="222" hits="60" branch="false"/>
<line number="243" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="11" branch="false"/>
<line number="246" hits="11" branch="false"/>
<line number="264" hits="0" branch="false"/>
<line number="281" hits="27" branch="false"/>
<line number="301" hits="17" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="17" branch="false"/>
<line number="304" hits="17" 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="11" 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="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="336" hits="6" branch="false"/>
<line number="338" hits="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="324" hits="11" branch="false"/>
<line number="335" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="336" hits="6" branch="false"/>
<line number="338" hits="3" 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="17" branch="false"/>
<line number="47" hits="17" 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="17" branch="false"/>
<line number="47" hits="17" 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>