| <!-- |
| 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. |
| --> |
| |
| <FindBugsFilter> |
| <Match> |
| <Package name="org.apache.hadoop.record.compiler.generated" /> |
| </Match> |
| <Match> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" /> |
| </Match> |
| <Match> |
| <Class name="~.*_jsp" /> |
| <Bug pattern="DLS_DEAD_LOCAL_STORE" /> |
| </Match> |
| <Match> |
| <Class name="~.*_jspx" /> |
| <Bug pattern="DLS_DEAD_LOCAL_STORE" /> |
| </Match> |
| <Match> |
| <Field name="_jspx_dependants" /> |
| <Bug pattern="UWF_UNWRITTEN_FIELD" /> |
| </Match> |
| <!-- |
| Inconsistent synchronization for Client.Connection.out is |
| is intentional to make a connection to be closed instantly. |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.ipc.Client$Connection" /> |
| <Field name="out" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <!-- |
| Ignore Cross Scripting Vulnerabilities |
| --> |
| <Match> |
| <Package name="~org.apache.hadoop.mapred.*" /> |
| <Bug code="XSS" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.taskdetails_jsp" /> |
| <Bug code="HRS" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.jobdetails_jsp"/> |
| <Bug pattern="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER"/> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.taskstats_jsp"/> |
| <Bug pattern="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER"/> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.jobtasks_jsp"/> |
| <Bug pattern="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER"/> |
| </Match> |
| <!-- |
| Ignore warnings where child class has the same name as |
| super class. Classes based on Old API shadow names from |
| new API. Should go off after HADOOP-1.0 |
| --> |
| <Match> |
| <Class name="~org.apache.hadoop.mapred.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" /> |
| </Match> |
| <Match> |
| <Class name="~org.apache.hadoop.mapred.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE" /> |
| </Match> |
| <Match> |
| <Class name="~org.apache.hadoop.mapred.lib.aggregate.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE" /> |
| </Match> |
| <Match> |
| <Class name="~org.apache.hadoop.mapred.join.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.SequenceFileInputFilter$Filter" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE" /> |
| </Match> |
| <Match> |
| <Class name="~org.apache.hadoop.util.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" /> |
| </Match> |
| <Match> |
| <Class name="~org.apache.hadoop.filecache.*" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" /> |
| </Match> |
| <!-- |
| Ignore warnings for usage of System.exit. This is |
| required and have been well thought out |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.Child$2" /> |
| <Method name="run" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.JobTracker" /> |
| <Method name="addHostToNodeMapping" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.Task" /> |
| <Or> |
| <Method name="done" /> |
| <Method name="commit" /> |
| <Method name="statusUpdate" /> |
| </Or> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.JobTracker" /> |
| <Field name="clock" /> |
| <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.Task$TaskReporter" /> |
| <Method name="run" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <!-- |
| We need to cast objects between old and new api objects |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.OutputCommitter" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| <!-- |
| We intentionally do the get name from the inner class |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.TaskTracker$MapEventsFetcherThread" /> |
| <Method name="run" /> |
| <Bug pattern="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.FileOutputCommitter" /> |
| <Or> |
| <Method name="commitJob" /> |
| <Method name="recoverTask" /> |
| <Method name="isRecoverySupported" /> |
| <Method name="isCommitJobRepeatable" /> |
| </Or> |
| <Bug pattern="NM_WRONG_PACKAGE" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.OutputCommitter" /> |
| <Or> |
| <Method name="abortJob" /> |
| <Method name="commitJob" /> |
| <Method name="cleanupJob" /> |
| <Method name="recoverTask" /> |
| <Method name="isRecoverySupported" /> |
| <Method name="isCommitJobRepeatable" /> |
| </Or> |
| <Bug pattern="NM_WRONG_PACKAGE_INTENTIONAL" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.TaskCompletionEvent" /> |
| <Or> |
| <Method name="setTaskStatus" /> |
| <Method name="setTaskAttemptId" /> |
| </Or> |
| <Bug pattern="NM_WRONG_PACKAGE" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.lib.db.DBInputFormat$DBRecordReader" /> |
| <Method name="next" /> |
| <Bug pattern="NM_WRONG_PACKAGE_INTENTIONAL" /> |
| </Match> |
| <!-- |
| Ignoring this warning as resolving this would need a non-trivial change in code |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.lib.aggregate.ValueAggregatorBaseDescriptor" /> |
| <Method name="configure" /> |
| <Field name="maxNumItems" /> |
| <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" /> |
| </Match> |
| <!-- |
| Comes from org.apache.jasper.runtime.ResourceInjector. Cannot do much. |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.jobqueue_005fdetails_jsp" /> |
| <Field name="_jspx_resourceInjector" /> |
| <Bug pattern="SE_BAD_FIELD" /> |
| </Match> |
| <!-- |
| Storing textInputFormat and then passing it as a parameter. Safe to ignore. |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.lib.aggregate.ValueAggregatorJob" /> |
| <Method name="createValueAggregatorJob" /> |
| <Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" /> |
| </Match> |
| <!-- |
| Can remove this after the upgrade to findbugs1.3.8 |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.lib.db.DBInputFormat" /> |
| <Method name="getSplits" /> |
| <Bug pattern="DLS_DEAD_LOCAL_STORE" /> |
| </Match> |
| <!-- |
| org.apache.hadoop.mapred.IndexCache is thread-safe. It does not need |
| synchronous access. |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.TaskTracker" /> |
| <Field name="indexCache" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <!-- |
| None of the following variables should be referenced by any thread |
| but the collection thread in MapTask |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.MapTask$MapOutputBuffer" /> |
| <Field name="kvindex" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.MapTask$MapOutputBuffer" /> |
| <Field name="bufferRemaining" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.MapTask$MapOutputBuffer" /> |
| <Field name="equator" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <!-- This is spurious. --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.MapTask$MapOutputBuffer$SpillThread" /> |
| <Method name="run" /> |
| <Bug pattern="UL_UNRELEASED_LOCK_EXCEPTION_PATH" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.task.reduce.MergeThread" /> |
| <Field name="inputs" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.JobTracker" /> |
| <Method name="updateTaskTrackerStatus" /> |
| <Bug pattern="DLS_DEAD_LOCAL_STORE" /> |
| </Match> |
| |
| <!-- |
| This class is unlikely to get subclassed, so ignore |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl" /> |
| <Bug pattern="SC_START_IN_CTOR" /> |
| </Match> |
| <!-- |
| This class is unlikely to get subclassed, so ignore |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl" /> |
| <Bug pattern="SC_START_IN_CTOR" /> |
| </Match> |
| |
| <!-- |
| Do not bother if equals is not implemented. We will not need it here |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl$Penalty" /> |
| <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapred.Task" /> |
| <Method name="reportFatalError" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| |
| <!-- |
| core changes |
| --> |
| <Match> |
| <Class name="~org.apache.hadoop.*" /> |
| <Bug code="MS" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.fs.FileSystem" /> |
| <Method name="checkPath" /> |
| <Bug pattern="ES_COMPARING_STRINGS_WITH_EQ" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.fs.kfs.KFSOutputStream" /> |
| <Field name="path" /> |
| <Bug pattern="URF_UNREAD_FIELD" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.fs.kfs.KosmosFileSystem" /> |
| <Method name="initialize" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.io.Closeable" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.security.AccessControlException" /> |
| <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.record.meta.Utils" /> |
| <Method name="skip" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| |
| <!-- |
| The compareTo method is actually a dummy method that just |
| throws excpetions. So, no need to override equals. Ignore |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.record.meta.RecordTypeInfo" /> |
| <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.util.ProcfsBasedProcessTree" /> |
| <Bug pattern="DMI_HARDCODED_ABSOLUTE_FILENAME" /> |
| </Match> |
| |
| <!-- |
| Streaming, Examples |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.streaming.StreamUtil$TaskId" /> |
| <Bug pattern="URF_UNREAD_FIELD" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.examples.DBCountPageView" /> |
| <Method name="verify" /> |
| <Bug pattern="OBL_UNSATISFIED_OBLIGATION" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.examples.ContextFactory" /> |
| <Method name="setAttributes" /> |
| <Bug pattern="OBL_UNSATISFIED_OBLIGATION" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapred.TaskScheduler$QueueRefresher" /> |
| <Bug pattern="SIC_INNER_SHOULD_BE_STATIC" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.examples.terasort.TeraInputFormat$1" /> |
| <Method name="run" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.examples.terasort.TeraOutputFormat$TeraOutputCommitter"/> |
| <Bug pattern="NM_WRONG_PACKAGE_INTENTIONAL" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.examples.terasort.Unsigned16" /> |
| <Method name="getHexDigit"/> |
| <Bug pattern="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT" /> |
| </Match> |
| |
| <!-- |
| False positive of FindBugs complaining that initializationPoller and |
| started were accessed through |
| CapacitySchedulerQueueRefresher.refreshQueues without explicitly holding |
| the lock of CapacityTaskScheduler. The lock is in fact acquired by |
| JobTracker prior to calling QueueManager.refereshQueues - this is |
| necessary to ensure the order of locking (TaskScheduler -> |
| QueueManager). |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.CapacityTaskScheduler" /> |
| <Field name="initializationPoller" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapred.CapacityTaskScheduler" /> |
| <Field name="started" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <!-- Yarn excludes --> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl" /> |
| <Method name="computeSlotMillis" /> |
| <Bug pattern="DB_DUPLICATE_BRACHES" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapred.LocalContainerLauncher$SubtaskRunner" /> |
| <Bug pattern="DM_EXIT" /> |
| </Match> |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.app\.job\.impl\.TaskImpl.*" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.app\.job\.impl\.JobImpl.*" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.app\.job\.impl\.TaskAttemptImpl.*" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.app\.recover\.RecoveryService" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.app\.rm\.RMContainerAllocator" /> |
| <Bug pattern="BC_UNCONFIRMED_CAST" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl" /> |
| <Method name="computeSlotMillis" /> |
| <Bug pattern="DB_DUPLICATE_BRANCHES" /> |
| </Match> |
| |
| <Match> |
| <Package name="org.apache.hadoop.yarn.proto" /> |
| </Match> |
| <Match> |
| <Package name="org.apache.hadoop.mapreduce.v2.hs.proto" /> |
| </Match> |
| <Match> |
| <Class name="~org\.apache\.hadoop\.mapreduce\.v2\.proto.*" /> |
| </Match> |
| <Match> |
| <Package name="org.apache.hadoop.mapred.proto" /> |
| </Match> |
| |
| <!-- |
| The below fields are accessed locally and only via methods that are synchronized. |
| --> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator" /> |
| <Or> |
| <Field name="mapResourceRequest" /> |
| <Field name="reduceResourceRequest" /> |
| <Field name="maxReduceRampupLimit" /> |
| <Field name="reduceSlowStart" /> |
| <Field name="reduceNodeLabelExpression" /> |
| </Or> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.local.LocalContainerAllocator" /> |
| <Or> |
| <Field name="retryInterval" /> |
| <Field name="retrystartTime" /> |
| </Or> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.app.commit.CommitterEventHandler" /> |
| <Field name="commitThreadCancelTimeoutMs" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapred.ShuffleHandler" /> |
| <Field name="sslFileBufferSize" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapred.ClientServiceDelegate" /> |
| <Method name="invoke" /> |
| <Bug pattern="SWL_SLEEP_WITH_LOCK_HELD" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.util.ProcessTree" /> |
| <Method name="sendSignal" /> |
| <Bug pattern="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.util.ProcessTree" /> |
| <Method name="isSetsidSupported" /> |
| <Bug pattern="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.util.ProcessTree" /> |
| <Method name="isSetsidSupported" /> |
| <Bug pattern="NP_NULL_ON_SOME_PATH_EXCEPTION" /> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.hadoop.mapreduce.v2.hs.CachedHistoryStorage$1" /> |
| <Bug pattern="SE_BAD_FIELD_INNER_CLASS" /> |
| </Match> |
| |
| </FindBugsFilter> |