##### 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 Report
  - FindBugs Report
  - JavaDocs
  - Test JavaDocs
  - Source Xref
  - Test Source Xref
  - PMD Report
  - CPD Report
  - 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 Report

FindBugs Version is 1.3.9

Threshold is

Effort is min

## Summary

Classes | Bugs | Errors | Missing Classes
--- | --- | --- | ---
251 | 42 | 0 | 1

## Files

Class | Bugs
--- | ---
org.apache.turbine.Turbine | 9
org.apache.turbine.modules.navigations.BaseJspNavigation | 1
org.apache.turbine.modules.navigations.VelocityNavigation | 1
org.apache.turbine.modules.screens.JSONScreen | 1
org.apache.turbine.om.security.DefaultUserImpl | 2
org.apache.turbine.pipeline.TurbinePipeline | 2
org.apache.turbine.services.BaseUnicastRemoteService | 3
org.apache.turbine.services.naming.TurbineNamingService | 1
org.apache.turbine.services.schedule.AbstractJobEntry | 1
org.apache.turbine.services.schedule.AbstractSchedulerService | 2
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.security.DefaultSecurityService | 1
org.apache.turbine.services.template.BaseTemplateEngineService | 1
org.apache.turbine.services.template.mapper.ScreenDefaultTemplateMapper | 1
org.apache.turbine.services.ui.TurbineUIService | 1
org.apache.turbine.services.uniqueid.TurbineUniqueIdService | 4
org.apache.turbine.services.velocity.TurbineVelocityService | 1
org.apache.turbine.util.GenerateUniqueId | 1
org.apache.turbine.util.ServerData | 1
org.apache.turbine.util.template.SelectorBox | 4

### org.apache.turbine.Turbine

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Incorrect lazy initialization of static field org.apache.turbine.Turbine.serverData in org.apache.turbine.Turbine.getDefaultServerData() | MT_CORRECTNESS | LI_LAZY_INIT_STATIC | 674-687 | Medium
Null pointer dereference of System.err in org.apache.turbine.Turbine.configureLogging() | CORRECTNESS | NP_ALWAYS_NULL | 431 | High
Null pointer dereference of System.err in org.apache.turbine.Turbine.configureLogging() | CORRECTNESS | NP_ALWAYS_NULL | 455 | High
Null pointer dereference of System.err in org.apache.turbine.Turbine.createRuntimeDirectories(ServletContext, ServletConfig) | CORRECTNESS | NP_ALWAYS_NULL | 506 | High
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 | 749 | 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 | 748 | 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 | 250 | 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 | 254 | Medium
Write to static field org.apache.turbine.Turbine.initFailure from instance method org.apache.turbine.Turbine.init() | STYLE | ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD | 223 | 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.modules.screens.JSONScreen

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.modules.screens.JSONScreen.doOutput(PipelineData) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 115 | Medium

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

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
org.apache.turbine.om.security.DefaultUserImpl.getLastAccessDate() may expose internal representation by returning DefaultUserImpl.lastAccessDate | MALICIOUS_CODE | EI_EXPOSE_REP | 424 | Medium
Null pointer dereference of System.out in org.apache.turbine.om.security.DefaultUserImpl.valueUnbound(HttpSessionBindingEvent) | CORRECTNESS | NP_ALWAYS_NULL | 113 | High

### org.apache.turbine.pipeline.TurbinePipeline

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Synchronization on TurbinePipeline.valves in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 120 | High
Synchronization on TurbinePipeline.valves in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 172 | High

### 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.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.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.security.DefaultSecurityService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Possible doublecheck on org.apache.turbine.services.security.DefaultSecurityService.globalGroup in org.apache.turbine.services.security.DefaultSecurityService.getGlobalGroup() | MT_CORRECTNESS | DC_DOUBLECHECK | 592-596 | 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 | 68 | 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 | 83 | Medium

### org.apache.turbine.services.ui.TurbineUIService

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Synchronization on TurbineUIService.skins in futile attempt to guard it | MT_CORRECTNESS | ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD | 241 | High

### 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 | 425 | Medium

### org.apache.turbine.util.GenerateUniqueId

Bug | Category | Details | Line | Priority
--- | --- | --- | --- | ---
Null pointer dereference of System.out in org.apache.turbine.util.GenerateUniqueId.main(String[]) | CORRECTNESS | NP_ALWAYS_NULL | 154 | High

### 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 | 143 | 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 | 146 | 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 | 144 | 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 | 295 | Medium