<?xml version="1.0" encoding="UTF-8"?>

<FindBugsFilter>
  <!-- see http://findbugs.sourceforge.net/bugDescriptions.html -->
  <LastVersion value="-1" relOp="NEQ"/>
  <!-- The following have not yet been investigated -->
  <!-- TODO(yanivi): investigate them -->
  <And>
    <Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER"/>
    <!-- Synchronization performed on util.concurrent instance -->
    <Class name="com.google.api.client.util.Data"/>
  </And>
  <And>
    <Bug pattern="SE_BAD_FIELD_INNER_CLASS"/>
    <!-- Non-serializable class has a serializable inner class -->
  </And>

  <!-- The following are known to be bugs and should be fixed -->
  <And>
    <Bug pattern="SE_BAD_FIELD"/>
    <!-- Non-transient non-serializable instance field in serializable class -->    
    <Class name="com.google.api.client.http.HttpResponseException"/>
  </And>
  <And>
    <Bug pattern="NP_NULL_PARAM_DEREF_NONVIRTUAL"/>
    <!-- Non-virtual method call passes null for nonnull parameter -->
    <Class name="com.google.api.client.xml.atom.AbstractAtomFeedParser"/>
  </And>

  <!-- The following are known to NOT be bugs and should not be fixed -->
  <And>
    <But pattern="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION"/>
    <!-- Sequence of calls to concurrent abstraction may not be atomic  -->
    <Class name="com.google.api.client.util.Data"/>
  </And>
  <And>
    <Bug pattern="DM_BOOLEAN_CTOR"/>
    <!-- Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead -->
    <Class name="com.google.api.client.util.Data"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_VOID_CTOR"/>
    <!-- Method invokes inefficient new String() constructor -->
    <Class name="com.google.api.client.util.Data"/>
  </And>
  <And>
    <Bug pattern="DM_NUMBER_CTOR"/>
    <!--  Method invokes inefficient Number constructor; use static valueOf instead -->
    <Class name="com.google.api.client.util.Data"/>
  </And>
  <And>
    <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
    <!-- Comparison of String parameter using == or != -->
    <Class name="com.google.api.client.util.ClassInfo$1"/>
  </And>
  <And>
    <Bug pattern="SS_SHOULD_BE_STATIC"/>
    <!-- Unread field: should this field be static? -->
    <Class name="com.google.api.client.json.rpc2.JsonRpcRequest"/>
  </And>
  <And>
    <Bug pattern="DM_DEFAULT_ENCODING"/>
    <!-- Reliance on default encoding -->
    <Class name="com.google.api.client.http.MultipartRelatedContent"/>
    <!-- Deprecated -->
  </And>
  <And>
    <Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2"/> 
    <!-- May expose internal representation by returning reference to mutable object -->
    <!-- May expose internal representation by incorporating reference to mutable object -->
  </And>
  <And>
    <Bug pattern="BETA_CLASS_USAGE,BETA_METHOD_USAGE"/>
    <!-- Usage of a &#64;Beta class or method -->
    <Class name="com.google.api.client.json.JsonParser"/>
  </And>
  <And>
    <Bug pattern="BETA_CLASS_USAGE,BETA_METHOD_USAGE"/>
    <Class name="com.google.api.client.http.HttpRequest"/>
  </And>
  <And>
    <Bug pattern="MS_PKGPROTECT"/>
    <!-- Field should be package protected -->
    <Class name="com.google.api.client.testing.http.javanet.MockHttpURLConnection"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.http.GenericUrl"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.http.HttpHeaders"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.http.UriTemplate"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.json.JsonParser"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.util.DataMap"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.util.DateTime"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.http.HttpRequest"/>
  </And>
  <And>
    <Bug pattern="DM_STRING_CTOR"/>
      <!-- Method invokes inefficient new String(String) constructor -->
      <Class name="com.google.api.client.xml.XmlNamespaceDictionary"/>
  </And>
</FindBugsFilter>
