| <!-- |
| 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> |
| <!-- This reference equality check is an intentional light weight |
| check to avoid re-validating the token when re-used. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azurebfs.utils.CachedSASToken" /> |
| <Method name="update" /> |
| <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ" /> |
| </Match> |
| |
| <!-- This is intentional. The unsynchronized field access is safe |
| and only synchronized access is used when using the sasToken |
| for authorization. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azurebfs.utils.CachedSASToken" /> |
| <Field name="sasToken" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <!-- It is okay to skip up to end of file. No need to check return value. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.AzureNativeFileSystemStore" /> |
| <Method name="retrieve" /> |
| <Bug pattern="SR_NOT_CHECKED" /> |
| <Priority value="2" /> |
| </Match> |
| |
| <!-- Returning fully loaded array to iterate through is a convenience |
| and helps performance. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.NativeAzureFileSystem$FolderRenamePending" /> |
| <Method name="getFiles" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| <Priority value="2" /> |
| </Match> |
| |
| <!-- Need to start keep-alive thread for SelfRenewingLease in constructor. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.SelfRenewingLease" /> |
| <Bug pattern="SC_START_IN_CTOR" /> |
| <Priority value="2" /> |
| </Match> |
| |
| <!-- Using a key set iterator is fine because this is not a performance-critical |
| method. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.PageBlobOutputStream" /> |
| <Method name="logAllStackTraces" /> |
| <Bug pattern="WMI_WRONG_MAP_ITERATOR" /> |
| <Priority value="2" /> |
| </Match> |
| |
| <!-- FileMetadata is used internally for storing metadata but also |
| subclasses FileStatus to reduce allocations when listing a large number |
| of files. When it is returned to an external caller as a FileStatus, the |
| extra metadata is no longer useful and we want the equals and hashCode |
| methods of FileStatus to be used. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.FileMetadata" /> |
| <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS" /> |
| </Match> |
| |
| <!-- continuation is returned from an external http call. Keeping this |
| outside synchronized block since the same is costly. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azurebfs.services.AbfsListStatusRemoteIterator" /> |
| <Field name="continuation" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| |
| <!-- This field is instance of BlockBlobInputStream and read(long, byte[], int, int) |
| calls it's Super class method when 'fs.azure.block.blob.buffered.pread.disable' |
| is configured false. Super class FSInputStream's implementation is having |
| proper synchronization. |
| When 'fs.azure.block.blob.buffered.pread.disable' is true, we want a lock free |
| implementation of blob read. Here we don't use any of the InputStream's |
| shared resource (buffer) and also don't change any cursor position etc. |
| So its safe to go with unsynchronized way of read. --> |
| <Match> |
| <Class name="org.apache.hadoop.fs.azure.NativeAzureFileSystem$NativeAzureFsInputStream" /> |
| <Field name="in" /> |
| <Bug pattern="IS2_INCONSISTENT_SYNC" /> |
| </Match> |
| </FindBugsFilter> |