blob: aadcb90afdff0ab3c1fed07efaae72b400848c76 [file] [log] [blame]
<?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.
-->
<FindBugsFilter
xmlns="https://github.com/spotbugs/filter/3.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://github.com/spotbugs/filter/3.0.0 https://raw.githubusercontent.com/spotbugs/spotbugs/3.1.0/spotbugs/etc/findbugsfilter.xsd">
<!-- v v CN_IDIOM_NO_SUPER_CALL = clone method does not call supper.clone(). OK since shallow clone wanted-->
<Match>
<Class name="org.apache.ofbiz.entity.GenericEntity" />
<Method name="clone" />
<Bug pattern="CN_IDIOM_NO_SUPER_CALL" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.GenericPK" />
<Method name="clone" />
<Bug pattern="CN_IDIOM_NO_SUPER_CALL" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.GenericValue" />
<Method name="clone" />
<Bug pattern="CN_IDIOM_NO_SUPER_CALL" />
</Match>
<!-- ^ ^ CN_IDIOM_NO_SUPER_CALL = clone method does not call supper.clone(). OK since shallow clone wanted-->
<!-- v v OK because of synchronized use -->
<Match>
<Class name="org.apache.ofbiz.webapp.view.ApacheFopWorker" />
<Method name="getFactoryInstance" />
<Bug pattern="DC_DOUBLECHECK" />
</Match>
<Match>
<Class name="org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi" />
<Method name="getWorkingKeyIndex" />
<Bug pattern="DC_DOUBLECHECK" />
</Match>
<!-- ^ ^ OK because of synchronized use -->
<!-- v v OK see remark about OWASP advice at bottom of OFBIZ-9973 -->
<Match>
<Class name="org.apache.ofbiz.pricat.PricatParseExcelHtmlThread" />
<Method name="storePricatFile" />
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
</Match>
<Match>
<Class name="org.apache.ofbiz.security.SecuredUpload" />
<Method name="isValidFileName" />
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
</Match>
<!-- ^ ^ OK see remark about OWASP advice at bottom of OFBIZ-9973 -->
<!-- v v OK all is internal -->
<!-- Though asmentioned by SpotBugs: "a PreparedStatement, is more efficient" -->
<Match>
<Class name="org.apache.ofbiz.entity.util.SequenceUtil" />
<Method name="SequenceBank" />
<Bug pattern="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.jdbc.DatabaseUtil" />
<Method name="createTable" />
<Bug pattern="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.util.SequenceUtil$SequenceBank" />
<Method name="fillBank" />
<Bug pattern="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" />
</Match>
<!-- ^ ^ OK all is internal -->
<!-- v v OK all is internal (as long as not proved otherwise...)-->
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="partialSelect"/>
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="select" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="selectByMultiRelation" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="selectCountByCondition" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="selectListIteratorByCondition" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="singleInsert" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="customUpdate" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="updateByCondition" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<Match>
<Class name="org.apache.ofbiz.entity.datasource.GenericDAO" />
<Method name="singleUpdate" />
<Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
</Match>
<!-- ^ ^ OK all is internal (as long as not proved otherwise...)-->
<!-- v v not a problem, false positive -->
<Match>
<!-- It's OK, cf. OFBIZ-9973 -->
<Class name="org.apache.ofbiz.product.imagemanagement.FrameImage" />
<Method name="previewFrameImage" />
<Bug pattern="PT_RELATIVE_PATH_TRAVERSAL" />
</Match>
<Match>
<!-- not a problem, this is used only once during test, no possible collisions -->
<!-- Moreover this is now commented out to allow building with BuilBot 3.3.2 -->
<Class name="org.apache.ofbiz.service.test.XmlRpcTests" />
<Field name="url" />
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
</Match>
<Match>
<!-- not a problem, report is initialised by initHtmlReport and then feed by different threads -->
<Class name="org.apache.ofbiz.htmlreport.AbstractReportThread" />
<Field name="report" />
<Bug pattern="UWF_UNWRITTEN_FIELD " />
</Match>
<Match>
<!-- not a problem, servletContext is initialised by contextInitialized() and then only read before being destroyed by contextDestroyed() -->
<Class name="org.apache.ofbiz.ws.rs.listener.ApiContextListener" />
<Field name="servletContext" />
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
</Match>
<Match>
<!-- not a problem, apiKey is initialised by UtilProperties.getPropertyValue() and then only read or possibly modified by the only constructor -->
<Class name="org.apache.ofbiz.ecommerce.janrain.JanrainHelper" />
<Field name="apiKey" />
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
</Match>
<Match>
<!-- not a problem, baseUrl is initialised by UtilProperties.getPropertyValue() and then only read or possibly modified by the only constructor -->
<Class name="org.apache.ofbiz.ecommerce.janrain.JanrainHelper" />
<Field name="baseUrl" />
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
</Match>
<!-- ^ ^ not a problem, false positives -->
</FindBugsFilter>