FindBugs Bug Detector Report
The following document contains the results of FindBugs Report
FindBugs Version is 1.2.0
Threshold is Low
Effort is Default
Summary
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 664 | 70 | 0 | 0 |
Files
javax.faces.application.FacesMessage
| Bug | Category | Details | Line |
|---|---|---|---|
| Class javax.faces.application.FacesMessage defines non-transient non-serializable instance field _severity | BAD_PRACTICE | SE_BAD_FIELD | Not available |
javax.faces.application.FacesMessage$Severity
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.application.FacesMessage$Severity defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 145-149 |
javax.faces.application.StateManager$SerializedView
| Bug | Category | Details | Line |
|---|---|---|---|
| Should javax.faces.application.StateManager$SerializedView be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | Not available |
javax.faces.component.UIData$EditableValueHolderState
| Bug | Category | Details | Line |
|---|---|---|---|
| Should javax.faces.component.UIData$EditableValueHolderState be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | Not available |
javax.faces.component.UISelectMany
| Bug | Category | Details | Line |
|---|---|---|---|
| Redundant nullcheck of previous, which is known to be non-null in javax.faces.component.UISelectMany.compareValues(Object, Object) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 168 |
javax.faces.component.UIViewRoot
| Bug | Category | Details | Line |
|---|---|---|---|
| instanceof will always return false in javax.faces.component.UIViewRoot.getLocale(), since a java.util.Locale can't be a java.lang.String | CORRECTNESS | BC_IMPOSSIBLE_INSTANCEOF | 202 |
| Dead store to listiterator in javax.faces.component.UIViewRoot._broadcastForPhase(PhaseId) | STYLE | DLS_DEAD_LOCAL_STORE | 323 |
javax.faces.component._ComponentAttributesMap
| Bug | Category | Details | Line |
|---|---|---|---|
| Class javax.faces.component._ComponentAttributesMap defines non-transient non-serializable instance field _component | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| The field javax.faces.component._ComponentAttributesMap._propertyDescriptorMap is transient but isn't set by deserialization | BAD_PRACTICE | SE_TRANSIENT_FIELD_NOT_RESTORED | Not available |
javax.faces.component._ComponentChildrenList
| Bug | Category | Details | Line |
|---|---|---|---|
| Class javax.faces.component._ComponentChildrenList defines non-transient non-serializable instance field _component | BAD_PRACTICE | SE_BAD_FIELD | Not available |
javax.faces.component._ComponentFacetMap
| Bug | Category | Details | Line |
|---|---|---|---|
| Class javax.faces.component._ComponentFacetMap defines non-transient non-serializable instance field _component | BAD_PRACTICE | SE_BAD_FIELD | Not available |
javax.faces.component._LabeledFacesMessage
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.component._LabeledFacesMessage is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
javax.faces.component._MethodBindingToMethodExpression
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to PRIME in javax.faces.component._MethodBindingToMethodExpression.hashCode() | STYLE | DLS_DEAD_LOCAL_STORE | 183 |
| Class javax.faces.component._MethodBindingToMethodExpression defines non-transient non-serializable instance field methodBinding | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| javax.faces.component._MethodBindingToMethodExpression is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
javax.faces.component._PrimitiveArrayIterator
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.component._PrimitiveArrayIterator.next() can't throw NoSuchElement exception | BAD_PRACTICE | IT_NO_SUCH_ELEMENT | 45 |
javax.faces.component._SelectItemsIterator
| Bug | Category | Details | Line |
|---|---|---|---|
| Redundant nullcheck of component, which is known to be non-null in javax.faces.component._SelectItemsIterator.getPathToComponent(UIComponent, StringBuffer) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 230 |
| _SelectItemsIterator._currentUISelectItems not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available |
javax.faces.component._ValueBindingToValueExpression
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to PRIME in javax.faces.component._ValueBindingToValueExpression.hashCode() | STYLE | DLS_DEAD_LOCAL_STORE | 138 |
| Redundant nullcheck of context, which is known to be non-null in javax.faces.component._ValueBindingToValueExpression.getFacesContext(ELContext) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 248 |
| Class javax.faces.component._ValueBindingToValueExpression defines non-transient non-serializable instance field _valueBinding | BAD_PRACTICE | SE_BAD_FIELD | Not available |
javax.faces.component._ValueExpressionToValueBinding
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to PRIME in javax.faces.component._ValueExpressionToValueBinding.hashCode() | STYLE | DLS_DEAD_LOCAL_STORE | 51 |
javax.faces.convert.CharacterConverter
| Bug | Category | Details | Line |
|---|---|---|---|
| Method javax.faces.convert.CharacterConverter.getAsObject(FacesContext, UIComponent, String) invokes inefficient Character(char) constructor; use Character.valueOf(char) instead | PERFORMANCE | DM_NUMBER_CTOR | 52 |
javax.faces.convert.NumberConverter
| Bug | Category | Details | Line |
|---|---|---|---|
| Method javax.faces.convert.NumberConverter.saveState(FacesContext) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 273 |
| Method javax.faces.convert.NumberConverter.saveState(FacesContext) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 274 |
| Method javax.faces.convert.NumberConverter.saveState(FacesContext) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 275 |
| Method javax.faces.convert.NumberConverter.saveState(FacesContext) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 276 |
| Switch statement found in javax.faces.convert.NumberConverter.checkJavaVersion14() where one case falls through to the next case | STYLE | SF_SWITCH_FALLTHROUGH | 445-448 |
javax.faces.convert._LabeledFacesMessage
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.convert._LabeledFacesMessage is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
javax.faces.event.ActionEvent
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from javax.faces.event.FacesListener to javax.faces.event.ActionListener in javax.faces.event.ActionEvent.processListener(FacesListener) | STYLE | BC_UNCONFIRMED_CAST | 48 |
javax.faces.event.PhaseEvent
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store to PRIME in javax.faces.event.PhaseEvent.hashCode() | STYLE | DLS_DEAD_LOCAL_STORE | 61 |
| Class javax.faces.event.PhaseEvent defines non-transient non-serializable instance field _facesContext | BAD_PRACTICE | SE_BAD_FIELD | Not available |
| Class javax.faces.event.PhaseEvent defines non-transient non-serializable instance field _phaseId | BAD_PRACTICE | SE_BAD_FIELD | Not available |
javax.faces.event.PhaseId
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.event.PhaseId defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 75 |
javax.faces.event.ValueChangeEvent
| Bug | Category | Details | Line |
|---|---|---|---|
| Unchecked/unconfirmed cast from javax.faces.event.FacesListener to javax.faces.event.ValueChangeListener in javax.faces.event.ValueChangeEvent.processListener(FacesListener) | STYLE | BC_UNCONFIRMED_CAST | 59 |
javax.faces.model.ArrayDataModel
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.model.ArrayDataModel.getWrappedData() may expose internal representation by returning ArrayDataModel._data | MALICIOUS_CODE | EI_EXPOSE_REP | 72 |
javax.faces.model.ResultDataModel
| Bug | Category | Details | Line |
|---|---|---|---|
| Should javax.faces.model.ResultDataModel.getRows() return a zero length array rather than null? | STYLE | PZLA_PREFER_ZERO_LENGTH_ARRAYS | 112 |
javax.faces.model.ResultSetDataModel$WrapResultSetMap
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.model.ResultSetDataModel$WrapResultSetMap is serializable but also an inner class of a non-serializable class | BAD_PRACTICE | SE_BAD_FIELD_INNER_CLASS | Not available |
javax.faces.model.SelectItemGroup
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.model.SelectItemGroup.getSelectItems() may expose internal representation by returning SelectItemGroup._selectItems | MALICIOUS_CODE | EI_EXPOSE_REP | 56 |
| javax.faces.model.SelectItemGroup.SelectItemGroup(String, String, boolean, SelectItem[]) may expose internal representation by storing an externally mutable object into SelectItemGroup._selectItems | MALICIOUS_CODE | EI_EXPOSE_REP2 | 50 |
| javax.faces.model.SelectItemGroup.setSelectItems(SelectItem[]) may expose internal representation by storing an externally mutable object into SelectItemGroup._selectItems | MALICIOUS_CODE | EI_EXPOSE_REP2 | 62 |
javax.faces.validator.DoubleRangeValidator
| Bug | Category | Details | Line |
|---|---|---|---|
| Method javax.faces.validator.DoubleRangeValidator.DoubleRangeValidator(double) invokes inefficient Double(double) constructor; use Double.valueOf(double) instead | PERFORMANCE | DM_FP_NUMBER_CTOR | 50 |
| Method javax.faces.validator.DoubleRangeValidator.DoubleRangeValidator(double, double) invokes inefficient Double(double) constructor; use Double.valueOf(double) instead | PERFORMANCE | DM_FP_NUMBER_CTOR | 56 |
| Method javax.faces.validator.DoubleRangeValidator.DoubleRangeValidator(double, double) invokes inefficient Double(double) constructor; use Double.valueOf(double) instead | PERFORMANCE | DM_FP_NUMBER_CTOR | 57 |
| Method javax.faces.validator.DoubleRangeValidator.setMaximum(double) invokes inefficient Double(double) constructor; use Double.valueOf(double) instead | PERFORMANCE | DM_FP_NUMBER_CTOR | 130 |
| Method javax.faces.validator.DoubleRangeValidator.setMinimum(double) invokes inefficient Double(double) constructor; use Double.valueOf(double) instead | PERFORMANCE | DM_FP_NUMBER_CTOR | 140 |
| javax.faces.validator.DoubleRangeValidator defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 174-182 |
javax.faces.validator.LengthValidator
| Bug | Category | Details | Line |
|---|---|---|---|
| Method javax.faces.validator.LengthValidator.LengthValidator(int) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 48 |
| Method javax.faces.validator.LengthValidator.LengthValidator(int, int) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 54 |
| Method javax.faces.validator.LengthValidator.LengthValidator(int, int) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 55 |
| Method javax.faces.validator.LengthValidator.setMaximum(int) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 102 |
| Method javax.faces.validator.LengthValidator.setMinimum(int) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 112 |
| javax.faces.validator.LengthValidator defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 145-153 |
javax.faces.validator.LongRangeValidator
| Bug | Category | Details | Line |
|---|---|---|---|
| Method javax.faces.validator.LongRangeValidator.LongRangeValidator(long) invokes inefficient Long(long) constructor; use Long.valueOf(long) instead | PERFORMANCE | DM_NUMBER_CTOR | 50 |
| Method javax.faces.validator.LongRangeValidator.LongRangeValidator(long, long) invokes inefficient Long(long) constructor; use Long.valueOf(long) instead | PERFORMANCE | DM_NUMBER_CTOR | 56 |
| Method javax.faces.validator.LongRangeValidator.LongRangeValidator(long, long) invokes inefficient Long(long) constructor; use Long.valueOf(long) instead | PERFORMANCE | DM_NUMBER_CTOR | 57 |
| Method javax.faces.validator.LongRangeValidator.setMaximum(long) invokes inefficient Long(long) constructor; use Long.valueOf(long) instead | PERFORMANCE | DM_NUMBER_CTOR | 131 |
| Method javax.faces.validator.LongRangeValidator.setMinimum(long) invokes inefficient Long(long) constructor; use Long.valueOf(long) instead | PERFORMANCE | DM_NUMBER_CTOR | 141 |
| javax.faces.validator.LongRangeValidator defines equals and uses Object.hashCode() | BAD_PRACTICE | HE_EQUALS_USE_HASHCODE | 174-182 |
javax.faces.validator._LabeledFacesMessage
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.validator._LabeledFacesMessage is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | Not available |
javax.faces.webapp.UIComponentClassicTagBase
| Bug | Category | Details | Line |
|---|---|---|---|
| Dead store of null to component in javax.faces.webapp.UIComponentClassicTagBase.doEndTag() | STYLE | DLS_DEAD_LOCAL_STORE_OF_NULL | 518 |
| Method javax.faces.webapp.UIComponentClassicTagBase.createNextId(String) invokes inefficient Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 1195 |
javax.faces.webapp.UIComponentELTag
| Bug | Category | Details | Line |
|---|---|---|---|
| Class javax.faces.webapp.UIComponentELTag implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | Not available |
javax.faces.webapp.UIComponentTagBase
| Bug | Category | Details | Line |
|---|---|---|---|
| javax.faces.webapp.UIComponentTagBase.log isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 34 |
javax.faces.webapp._ErrorPageWriter
| Bug | Category | Details | Line |
|---|---|---|---|
| Incorrect lazy initialization of static field javax.faces.webapp._ErrorPageWriter.DEBUG_PARTS in javax.faces.webapp._ErrorPageWriter.init() | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 67-68 |
| Incorrect lazy initialization of static field javax.faces.webapp._ErrorPageWriter.ERROR_PARTS in javax.faces.webapp._ErrorPageWriter.init() | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 63-64 |
| Exception is caught when Exception is not thrown in javax.faces.webapp._ErrorPageWriter.initCauseIfAvailable(Throwable, Throwable) | STYLE | REC_CATCH_EXCEPTION | 423 |
| Exception is caught when Exception is not thrown in javax.faces.webapp._ErrorPageWriter.initCausePerReflection(Throwable, String) | STYLE | REC_CATCH_EXCEPTION | 379 |
| Exception is caught when Exception is not thrown in javax.faces.webapp._ErrorPageWriter.writeAttributes(Writer, UIComponent) | STYLE | REC_CATCH_EXCEPTION | 294 |
| Exception is caught when Exception is not thrown in javax.faces.webapp._ErrorPageWriter.writeAttributes(Writer, UIComponent) | STYLE | REC_CATCH_EXCEPTION | 294 |