spotbugs-exclude-filter.xml 7.67 KB
Newer Older
1 2
<?xml version="1.0"?>
<!--
3
  This file contains some false positive bugs detected by spotbugs. Their
4
  false positive nature has been analyzed individually and they have been
5
  put here to instruct spotbugs it must ignore them.
6 7 8
-->
<FindBugsFilter>

Luc Maisonobe's avatar
Luc Maisonobe committed
9
  <!-- the following serialization classes already takes care of non-serializable parts. -->
10
  <Match>
11
    <Or>
Luc Maisonobe's avatar
Luc Maisonobe committed
12 13
      <Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper\$DataTransferObject$" />
      <Class name="~.*\.IntegratedEphemeris\$DataTransferObject$" />
14 15
     <Class name="~.*\.KeplerianPropagator\$DataTransferObject$" />
     <Class name="~.*\.EcksteinHechlerPropagator\$DataTransferObject$" />
16
    </Or>
Luc Maisonobe's avatar
Luc Maisonobe committed
17 18 19 20
    <Bug pattern="SE_BAD_FIELD" />
  </Match>

  <!-- the following classes are serialized using writeReplace/readResolve with proxy classes,
21
       so the is no real problem about the base class not having a proper constructor.  -->
Luc Maisonobe's avatar
Luc Maisonobe committed
22 23
  <Match>
    <Or>
24 25 26 27
      <Class name="~.*\.AbstractAnalyticalPropagator\$BoundedPropagatorView$" />
      <Class name="~.*\.KeplerianPropagator$" />
      <Class name="~.*\.EcksteinHechlerPropagator$" />
      <Class name="~.*\.Ephemeris$" />
Luc Maisonobe's avatar
Luc Maisonobe committed
28 29 30 31 32 33 34
      <Class name="~.*\.IntegratedEphemeris$" />
      <Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper$" />
      <Class name="~.*\.NumericalPropagator\$OsculatingMapper$" />
    </Or>
    <Bug pattern="SE_NO_SUITABLE_CONSTRUCTOR" />
  </Match>
  <Match>
35 36
    <Or>
      <Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper$" />
Luc Maisonobe's avatar
Luc Maisonobe committed
37 38 39 40
      <Class name="~.*\.AbstractGaussianContribution\$GaussianShortPeriodicCoefficients$" />
      <Class name="~.*\.DSSTThirdBody\$ThirdBodyShortPeriodicCoefficients$" />
      <Class name="~.*\.TesseralContributionContribution\$TesseralShortPeriodicCoefficients$" />
      <Class name="~.*\.ZonalContribution\$ZonalShortPeriodicCoefficients$" />
41 42 43
      <Class name="~.*\.FieldOfView$" />
      <Class name="~.*\.FootprintOverlapDetector$" />
      <Class name="~.*\.GeographicZoneDetector$" />
Luc Maisonobe's avatar
Luc Maisonobe committed
44
      <Class name="~.*\.SaastamoinenModel$" />
Luc Maisonobe's avatar
Luc Maisonobe committed
45
      <Class name="~.*\.EventEnablingPredicateFilter$" />
Luc Maisonobe's avatar
Luc Maisonobe committed
46 47 48 49 50
      <Class name="~.*\.FixedTransformProvider$" />
      <Class name="~.*\.InterpolatingTransformProvider$" />
      <Class name="~.*\.ShiftingTransformProvider$" />
      <Class name="~.*\.MODProvider$" />
      <Class name="~.*\.TIRFProvider$" />
51
      <Class name="~.*\.CartesianOrbit$" />
52
      <Class name="~.*\.EstimatedEarthFrameProvider$" />
53
    </Or>
54 55
    <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" />
  </Match>
56

57
  <!-- the following are in fact false positives from SpotBugs -->
58 59 60 61 62 63 64 65 66 67 68
  <!-- their occurrence depends on the java compiler used      -->
  <Match>
    <Class name="~.*\.EcksteinHechlerPropagator$"/>
    <Method name="computeMeanParameters" />
    <Or>
      <Local name="epsilon" />
      <Local name="thresholdAngles" />
    </Or>
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
  <Match>
69
    <Class name="~.*\.DTM2000$"/>
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
    <Method name="computation" />
    <Or>
      <Local name="zlb" />
      <Local name="zlbre" />
    </Or>
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
  <Match>
    <Class name="~.*\.SDP4$"/>
    <Method name="thetaG" />
    <Or>
      <Local name="omega_E" />
      <Local name="seconds_per_day" />
      <Local name="jd_2000" />
    </Or>
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
  <Match>
    <Class name="~.*\.TLEPropagator$"/>
    <Method name="computePVCoordinates" />
    <Or>
      <Local name="newtonRaphsonEpsilon" />
      <Local name="cv" />
    </Or>
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
96
  <Match>
97
    <Class name="~.*\.JPLEphemeridesLoader$"/>
98
    <Method name="tooFarRange" />
99
    <Local name="fiftyDays" />
100 101
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
Luc Maisonobe's avatar
Luc Maisonobe committed
102 103 104 105 106 107 108 109 110 111 112
  <Match>
    <Class name="~.*\.JB2006$"/>
    <Method name="getDensity" />
    <Local name="FACT1" />
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
  <Match>
    <Class name="~.*\.JB2006$"/>
    <Method name="dTc" />
    <Local name="HP" />
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
113
  </Match>
Luc Maisonobe's avatar
Luc Maisonobe committed
114 115 116 117 118 119
  <Match>
    <Class name="~.*\.OneAxisEllipsoid$"/>
    <Method name="transform" />
    <Local name="epsPhi" />
    <Bug pattern="DLS_DEAD_LOCAL_STORE" />
  </Match>
120

121
  <!-- the approximate constants do belong to the models -->
122 123 124
  <Match>
    <Class name="~.*\.JB2006$"/>
    <Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
Luc Maisonobe's avatar
Luc Maisonobe committed
125
  </Match>
126 127 128 129
  <Match>
    <Class name="~.*\.SEMParser$"/>
    <Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
  </Match>
Luc Maisonobe's avatar
Luc Maisonobe committed
130
  
131
  <!-- The following is a false positive from SpotBugs -->
132 133 134 135 136 137
  <Match>
    <Class name="~.*\.IntegratedEphemeris\$LocalProvider$"/>
    <Method name="getAdditionalState" />
    <Bug pattern="BC_VACUOUS_INSTANCEOF" />
  </Match>

138
  <!-- The following equality tests are intentional and needed for semantic purposes -->
Luc Maisonobe's avatar
Luc Maisonobe committed
139 140 141 142 143
  <Match>
    <Class name="org.orekit.time.TimeComponents" />
    <Method name="equals" params="java.lang.Object" returns="boolean" />
    <Bug pattern="FE_FLOATING_POINT_EQUALITY" />
  </Match>
144 145
  <Match>
    <Class name="org.orekit.orbits.KeplerianOrbit"/>
Luc Maisonobe's avatar
Luc Maisonobe committed
146 147 148 149
    <Or>
      <Method name ="eMeSinE" params="double,double" returns="double" />
      <Method name ="eMeSinE" params="org.hipparchus.analysis.differentiation.DerivativeStructure,org.hipparchus.analysis.differentiation.DerivativeStructure" returns="org.hipparchus.analysis.differentiation.DerivativeStructure" />
    </Or>
150 151 152 153 154 155 156
    <Bug pattern="FE_FLOATING_POINT_EQUALITY" />
  </Match>

  <!-- The following internal representation exposure are intentional,
       They are used to pass data back and forth between classes
    -->
  <Match>
Luc Maisonobe's avatar
Luc Maisonobe committed
157
    <Class name="org.orekit.propagation.integration.AdditionalStateData"/>
158 159 160 161
    <Method name ="getAdditionalState" params="" returns="double[]" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
Luc Maisonobe's avatar
Luc Maisonobe committed
162
    <Class name="org.orekit.propagation.integration.AdditionalStateData"/>
163 164 165
    <Method name ="getAdditionalStateDot" params="" returns="double[]" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
166 167 168 169 170 171 172 173 174 175 176 177 178 179
  <Match>
    <Class name="org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel$GradientHessian"/>
    <Or>  
      <Method name="getGradient" params="" returns="double[]" />
      <Method name="getHessian" params="" returns="double[][]" />
      </Or>
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel$GradientHessian"/>
    <Method name="&lt;init>"  params="double[],double[][]" returns="void" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>
  
180 181 182 183 184 185 186
  <!-- the following is an intended switch fall-through in the SP3Parser -->
  <Match>
    <Class name="~.*\.SP3Parser$"/>
    <Method name="parseHeaderLine" />
    <Bug pattern="SF_SWITCH_FALLTHROUGH" />
  </Match>

Luc Maisonobe's avatar
Luc Maisonobe committed
187 188 189 190 191 192 193 194
  <!-- the following is a false positive as the listFiles method is called
       on a parameter already known to be a directory (so it does not return null) -->
  <Match>
    <Class name="~.*\.DirectoryCrawler$"/>
    <Method name="feed"   params="java.util.regex.Pattern,org.orekit.data.DataLoader,java.io.File" returns="boolean" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
  </Match>

Luc Maisonobe's avatar
Luc Maisonobe committed
195 196 197 198 199 200 201 202
  <!-- the following is a false positive as the inverseCrossProducts method either
        returns eatly, throws an exception or sets the omega variable to non-null  -->
  <Match>
    <Class name="~.*\.FieldAngularCoordinates$"/>
    <Method name="inverseCrossProducts" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_EXCEPTION" />
  </Match>

Luc Maisonobe's avatar
Luc Maisonobe committed
203 204 205 206 207 208 209 210
  <!-- the following is a false positive as the Direction.next() always return non-null
       and Direction is an enumerate that can't be changed -->
  <Match>
    <Class name="~.*\.Mesh$"/>
    <Method name="getTaxicabBoundary"   params="boolean" />
    <Bug pattern="NP_NULL_PARAM_DEREF" />
  </Match>

211
</FindBugsFilter>