##### General Information

- Overview
- Features
- Specification
- Getting Started
- Howto Build Turbine
- Changes

##### Documentation

- Services
- Howtos
- Wiki
- JavaDocs

##### Development

- Proposals
- How To Help
- Todo

##### Project Documentation

- Project Information
- Project Reports
  - Changes
  - FindBugs
  - JavaDocs
  - Test JavaDocs
  - Source Xref
  - Test Source Xref
  - PMD
  - Surefire Report
  - Cobertura Test Coverage
  - JDepend
  - Rat Report
  - Tag List

##### Apache

- Apache Website
- License
- How the ASF works
- Sponsorship
- Thanks
- Security

## FindBugs Bug Detector Report

The following document contains the results of FindBugs

FindBugs Version is 2.0.3

Threshold is

Effort is min

## Summary

Classes | Bugs | Errors | Missing Classes
--- | --- | --- | ---
245 | 39 | 0 | 0

## Files

Class | Bugs
--- | ---
org.apache.turbine.Turbine | 5
org.apache.turbine.modules.navigations.BaseJspNavigation | 1
org.apache.turbine.modules.navigations.VelocityNavigation | 1
org.apache.turbine.om.security.DefaultUserImpl | 3
org.apache.turbine.services.BaseUnicastRemoteService | 3
org.apache.turbine.services.naming.TurbineNamingService | 1
org.apache.turbine.services.pull.TurbinePullService | 4
org.apache.turbine.services.rundata.DefaultTurbineRunData | 1
org.apache.turbine.services.schedule.AbstractJobEntry | 1
org.apache.turbine.services.schedule.AbstractSchedulerService | 1
org.apache.turbine.services.schedule.AbstractSchedulerService$MainLoop | 1
org.apache.turbine.services.schedule.BaseJobEntryTorque | 2
org.apache.turbine.services.schedule.JobEntryQuartz | 1
org.apache.turbine.services.schedule.QuartzSchedulerService | 1
org.apache.turbine.services.session.SessionListener | 1
org.apache.turbine.services.template.BaseTemplateEngineService | 1
org.apache.turbine.services.template.mapper.ScreenDefaultTemplateMapper | 1
org.apache.turbine.services.uniqueid.TurbineUniqueIdService | 4
org.apache.turbine.services.velocity.TurbineVelocityService | 1
org.apache.turbine.util.ServerData | 1
org.apache.turbine.util.template.SelectorBox | 4

### org.apache.turbine.Turbine

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
pipelineData is null guaranteed to be dereferenced in org.apache.turbine.Turbine.doGet(HttpServletRequest, HttpServletResponse) on exception path | CORRECTNESS | NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH | 836 | Medium
Write to static field org.apache.turbine.Turbine.firstDoGet from instance method org.apache.turbine.Turbine.destroy() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 766 | High
Write to static field org.apache.turbine.Turbine.firstInit from instance method org.apache.turbine.Turbine.destroy() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 765 | High
Write to static field org.apache.turbine.Turbine.applicationRoot from instance method org.apache.turbine.Turbine.configure(ServletConfig, ServletContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 253 | Medium
Write to static field org.apache.turbine.Turbine.webappRoot from instance method org.apache.turbine.Turbine.configure(ServletConfig, ServletContext) | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 257 | Medium

### org.apache.turbine.modules.navigations.BaseJspNavigation

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Unread field: org.apache.turbine.modules.navigations.BaseJspNavigation.prefix; should this field be static? | PERFORMANCE | SS_SHOULD_BE_STATIC | 43 | Medium

### org.apache.turbine.modules.navigations.VelocityNavigation

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Unread field: org.apache.turbine.modules.navigations.VelocityNavigation.prefix; should this field be static? | PERFORMANCE | SS_SHOULD_BE_STATIC | 49 | Medium

### org.apache.turbine.om.security.DefaultUserImpl

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Found reliance on default encoding in org.apache.turbine.om.security.DefaultUserImpl.valueUnbound(HttpSessionBindingEvent): java.io.ByteArrayOutputStream.toString() | I18N | DM_DEFAULT_ENCODING | 115 | High
Found reliance on default encoding in org.apache.turbine.om.security.DefaultUserImpl.valueUnbound(HttpSessionBindingEvent): new java.io.PrintWriter(OutputStream, boolean) | I18N | DM_DEFAULT_ENCODING | 114 | High
org.apache.turbine.om.security.DefaultUserImpl.getLastAccessDate() may expose internal representation by returning DefaultUserImpl.lastAccessDate | MALICIOUS_CODE | EI_EXPOSE_REP | 429 | Medium

### org.apache.turbine.services.BaseUnicastRemoteService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Class org.apache.turbine.services.BaseUnicastRemoteService defines non-transient non-serializable instance field configuration | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium
Class org.apache.turbine.services.BaseUnicastRemoteService defines non-transient non-serializable instance field initableBroker | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium
Class org.apache.turbine.services.BaseUnicastRemoteService defines non-transient non-serializable instance field serviceBroker | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium

### org.apache.turbine.services.naming.TurbineNamingService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Write to static field org.apache.turbine.services.naming.TurbineNamingService.contextPropsList from instance method org.apache.turbine.services.naming.TurbineNamingService.init() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 84 | Medium

### org.apache.turbine.services.pull.TurbinePullService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Redundant nullcheck of tool, which is known to be non-null in org.apache.turbine.services.pull.TurbinePullService.populateWithPermTools(List, Context, PipelineData, User) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 781 | Medium
Redundant nullcheck of tool, which is known to be non-null in org.apache.turbine.services.pull.TurbinePullService.populateWithPermTools(List, Context, RunData, User) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 864 | Medium
Redundant nullcheck of tool, which is known to be non-null in org.apache.turbine.services.pull.TurbinePullService.populateWithSessionTools(List, Context, PipelineData, User) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 606 | Medium
Redundant nullcheck of tool, which is known to be non-null in org.apache.turbine.services.pull.TurbinePullService.populateWithSessionTools(List, Context, RunData, User) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 692 | Medium

### org.apache.turbine.services.rundata.DefaultTurbineRunData

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Write to static field org.apache.turbine.services.rundata.DefaultTurbineRunData.defaultCharSet from instance method org.apache.turbine.services.rundata.DefaultTurbineRunData.getDefaultCharSet() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 249 | Medium

### org.apache.turbine.services.schedule.AbstractJobEntry

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.schedule.AbstractJobEntry.log isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 38 | High

### org.apache.turbine.services.schedule.AbstractSchedulerService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Inconsistent synchronization of org.apache.turbine.services.schedule.AbstractSchedulerService.enabled; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 342 | Medium
org.apache.turbine.services.schedule.AbstractSchedulerService.log isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 40 | High

### org.apache.turbine.services.schedule.AbstractSchedulerService$MainLoop

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---

### org.apache.turbine.services.schedule.BaseJobEntryTorque

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.schedule.BaseJobEntryTorque.getProperty() may expose internal representation by returning BaseJobEntryTorque.property | MALICIOUS_CODE | EI_EXPOSE_REP | 331 | Medium
org.apache.turbine.services.schedule.BaseJobEntryTorque.setProperty(byte[]) may expose internal representation by storing an externally mutable object into BaseJobEntryTorque.property | MALICIOUS_CODE | EI_EXPOSE_REP2 | 346 | Medium

### org.apache.turbine.services.schedule.JobEntryQuartz

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.schedule.JobEntryQuartz defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 41 | Medium

### org.apache.turbine.services.schedule.QuartzSchedulerService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.schedule.QuartzSchedulerService.log isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 54 | High

### org.apache.turbine.services.session.SessionListener

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Class org.apache.turbine.services.session.SessionListener defines non-transient non-serializable instance field sessionService | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium

### org.apache.turbine.services.template.BaseTemplateEngineService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.template.BaseTemplateEngineService.getTemplateEngineServiceConfiguration() may expose internal representation by returning BaseTemplateEngineService.configuration | MALICIOUS_CODE | EI_EXPOSE_REP | 72 | Medium

### org.apache.turbine.services.template.mapper.ScreenDefaultTemplateMapper

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Dead store to componentSize in org.apache.turbine.services.template.mapper.ScreenDefaultTemplateMapper.doMapping(String) | STYLE | DLS_DEAD_LOCAL_STORE | 84 | Medium

### org.apache.turbine.services.uniqueid.TurbineUniqueIdService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.services.uniqueid.TurbineUniqueIdService.counter should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | Not available | Medium
org.apache.turbine.services.uniqueid.TurbineUniqueIdService.turbineId should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 51 | Medium
org.apache.turbine.services.uniqueid.TurbineUniqueIdService.turbineURL isn't final but should be | MALICIOUS_CODE | MS_SHOULD_BE_FINAL | 53 | High
Write to static field org.apache.turbine.services.uniqueid.TurbineUniqueIdService.turbineId from instance method org.apache.turbine.services.uniqueid.TurbineUniqueIdService.init() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 78 | Medium

### org.apache.turbine.services.velocity.TurbineVelocityService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Inconsistent synchronization of org.apache.turbine.services.velocity.TurbineVelocityService.velocity; locked 60% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 424 | Medium

### org.apache.turbine.util.ServerData

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.util.ServerData defines clone() but doesn't implement Cloneable | BAD_PRACTICE | CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE | 141-142 | Medium

### org.apache.turbine.util.template.SelectorBox

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
new org.apache.turbine.util.template.SelectorBox(String, Object[], Object[], int, boolean[]) may expose internal representation by storing an externally mutable object into SelectorBox.names | MALICIOUS_CODE | EI_EXPOSE_REP2 | 142 | Medium
new org.apache.turbine.util.template.SelectorBox(String, Object[], Object[], int, boolean[]) may expose internal representation by storing an externally mutable object into SelectorBox.selected | MALICIOUS_CODE | EI_EXPOSE_REP2 | 145 | Medium
new org.apache.turbine.util.template.SelectorBox(String, Object[], Object[], int, boolean[]) may expose internal representation by storing an externally mutable object into SelectorBox.values | MALICIOUS_CODE | EI_EXPOSE_REP2 | 143 | Medium
org.apache.turbine.util.template.SelectorBox.setSelected(boolean[]) may expose internal representation by storing an externally mutable object into SelectorBox.selected | MALICIOUS_CODE | EI_EXPOSE_REP2 | 294 | Medium