<?xml version="1.0" encoding="UTF-8"?>
	<!--
		Licensed to the Apache Software Foundation (ASF) under one or more
		contributor license agreements. See the NOTICE file distributed with
		this work for additional information regarding copyright ownership.
		The ASF licenses this file to You under the Apache License, Version
		2.0 (the "License"); you may not use this file except in compliance
		with the License. You may obtain a copy of the License at

		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
		applicable law or agreed to in writing, software distributed under the
		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
		CONDITIONS OF ANY KIND, either express or implied. See the License for
		the specific language governing permissions and limitations under the
		License.
	-->

	<!-- Exclusion filter for running FindBugs against Apache Harmony -->

	<!--
		Format and code information is available here
		http://findbugs.sourceforge.net/manual/filter.html
	-->

<FindBugsFilter>

	<!-- This string comparison using == is deliberate. -->
	<Match>
		<Class name="java.security.BasicPermission" />
		<Method name="nameImplies" />
		<Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ" />
	</Match>

	<!-- CodeSource needs to call equals on a URL in a few methods. -->
	<Match>
		<Class name="java.security.CodeSource" />
		<Or>
			<Method name="equals" />
			<Method name="hashCode" />
			<Method name="implies" />
		</Or>
		<Bug pattern="DMI_BLOCKING_METHODS_ON_URL" />
	</Match>

	<!--
		Spec requires that the class implements clone, but not cloneable.
	-->
	<Match>
		<Class name="java.security.MessageDigest" />
		<Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" />
	</Match>
	<Match>
		<Class name="java.security.MessageDigest$MessageDigestImpl" />
		<Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" />
	</Match>
	<Match>
		<Class name="java.security.Signature" />
		<Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" />
	</Match>
	<Match>
		<Class name="java.security.Signature$SignatureImpl" />
		<Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" />
	</Match>

	<!-- A false positive warning for double check lock -->
	<Match>
		<Class name="java.security.Policy" />
		<Method name="getAccessiblePolicy" />
		<Bug pattern="DC_DOUBLECHECK" />
	</Match>

	<!-- Allow this dead store, we are trying to force a potential exception -->
	<Match>
		<Class name="org.apache.harmony.security.provider.crypto.SHA1withDSA_SignatureImpl" />
		<Method name="checkSignature" />
		<Bug pattern="DLS_DEAD_LOCAL_STORE" />
	</Match>

</FindBugsFilter>
