##### Project Documentation

- About Acegi Security System for Spring - Domain Object Support
- Downloads
- Project Info
- Project Reports
  - Change Log
  - Checkstyle
  - Clover
  - JavaDocs
  - JavaDoc Report
  - JavaDoc Warnings Report
  - Metrics
  - Unit Tests
  - Source Xref
  - Test Xref
  - PMD Report
  - Simian Report
  - Task List
  - FindBugs Report
- Development Process

## FindBugs Results

The following document contains the results of FindBugs.

## Summary

Files | Errors
--- | ---
10 | 18

## Files

Files | Violations
--- | ---
org.acegisecurity.domain.dao.DetachmentContextHolder | 1
org.acegisecurity.domain.dao.EvictionUtils | 1
org.acegisecurity.domain.hibernate.DaoHibernate | 2
org.acegisecurity.domain.hibernate.EnumUserType | 1
org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate | 3
org.acegisecurity.domain.util.ReflectionToStringBuilder | 1
org.acegisecurity.domain.validation.ValidationAdvisor | 2
org.acegisecurity.domain.validation.ValidationInterceptor | 2
org.acegisecurity.domain.validation.ValidationRegistryManagerImpl | 4
org.acegisecurity.domain.service.ImmutableManagerImpl | 1

### org.acegisecurity.domain.dao.DetachmentContextHolder

Violation | Line
--- | ---
Dm: org.acegisecurity.domain.dao.DetachmentContextHolder.setForceReturnOfDetachedInstances(boolean) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead | 48

### org.acegisecurity.domain.dao.EvictionUtils

Violation | Line
--- | ---
REC: Method org.acegisecurity.domain.dao.EvictionUtils.evictPopulatedIfRequired(Object,org.acegisecurity.domain.PersistableEntity) catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught | 81

### org.acegisecurity.domain.hibernate.DaoHibernate

Violation | Line
--- | ---
DE: org.acegisecurity.domain.hibernate.DaoHibernate.initializeAllZeroArgumentGetters(org.acegisecurity.domain.PersistableEntity) might ignore java.lang.Exception | 200
REC: Method org.acegisecurity.domain.hibernate.DaoHibernate.initializeAllZeroArgumentGetters(org.acegisecurity.domain.PersistableEntity) catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught | 200

### org.acegisecurity.domain.hibernate.EnumUserType

Violation | Line
--- | ---
EI: org.acegisecurity.domain.hibernate.EnumUserType.sqlTypes() may expose internal representation by returning org.acegisecurity.domain.hibernate.EnumUserType.SQL_TYPES | 42

### org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate

Violation | Line
--- | ---
EI2: org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate.setSessionFactories(org.hibernate.SessionFactory[]) may expose internal representation by storing an externally mutable object into org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate.sessionFactories | 73
EI: org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate.getSessionFactories() may expose internal representation by returning org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate.sessionFactories | 77
UwF: Field not initialized in constructor: org.acegisecurity.domain.hibernate.IntrospectionManagerHibernate.validationRegistryManager | 0

### org.acegisecurity.domain.util.ReflectionToStringBuilder

Violation | Line
--- | ---
REC: Method org.acegisecurity.domain.util.ReflectionToStringBuilder.accept(java.lang.reflect.Field) catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught | 93

### org.acegisecurity.domain.validation.ValidationAdvisor

Violation | Line
--- | ---
EI2: org.acegisecurity.domain.validation.ValidationAdvisor.setMethods(String[]) may expose internal representation by storing an externally mutable object into org.acegisecurity.domain.validation.ValidationAdvisor.methods | 68
EI: org.acegisecurity.domain.validation.ValidationAdvisor.getMethods() may expose internal representation by returning org.acegisecurity.domain.validation.ValidationAdvisor.methods | 72

### org.acegisecurity.domain.validation.ValidationInterceptor

Violation | Line
--- | ---
EI2: org.acegisecurity.domain.validation.ValidationInterceptor.setArgumentClasses(Class[]) may expose internal representation by storing an externally mutable object into org.acegisecurity.domain.validation.ValidationInterceptor.argumentClasses | 56
EI: org.acegisecurity.domain.validation.ValidationInterceptor.getArgumentClasses() may expose internal representation by returning org.acegisecurity.domain.validation.ValidationInterceptor.argumentClasses | 60

### org.acegisecurity.domain.validation.ValidationRegistryManagerImpl

Violation | Line
--- | ---
Dm: Method org.acegisecurity.domain.validation.ValidationRegistryManagerImpl.findValidator(Class) invokes dubious String.toUpperCase() or String.toLowerCase; use the Locale parameterized version instead | 130
Dm: Method org.acegisecurity.domain.validation.ValidationRegistryManagerImpl.findValidator(Class) invokes toString() method on a String; just use the String | 136
WMI: Method org.acegisecurity.domain.validation.ValidationRegistryManagerImpl.findValidator(Class) makes inefficient use of keySet iterator instead of entrySet iterator | 103
UwF: Field not initialized in constructor: org.acegisecurity.domain.validation.ValidationRegistryManagerImpl.bf | 0

### org.acegisecurity.domain.service.ImmutableManagerImpl

Violation | Line
--- | ---
UrF: Unread field: org.acegisecurity.domain.service.ImmutableManagerImpl.beanName | 0