FindBugs Bug Detector Report

The following document contains the results of FindBugs Report

FindBugs Version is 1.3.9

Threshold is medium

Effort is min

Summary

ClassesBugsErrorsMissing Classes
4797700

org.asteriskjava.Cli

BugCategoryDetailsLinePriority
Null pointer dereference of System.err in org.asteriskjava.Cli.showHelp()CORRECTNESSNP_ALWAYS_NULL72High
Null pointer dereference of System.out in org.asteriskjava.Cli.showVersion()CORRECTNESSNP_ALWAYS_NULL80High
Null pointer dereference of System.err in org.asteriskjava.Cli.parseOptions(String[])CORRECTNESSNP_ALWAYS_NULL57Medium

org.asteriskjava.config.dialplan.ConfigExtension

BugCategoryDetailsLinePriority
org.asteriskjava.config.dialplan.ConfigExtension.getApplication() may expose internal representation by returning ConfigExtension.applicationMALICIOUS_CODEEI_EXPOSE_REP55Medium
new org.asteriskjava.config.dialplan.ConfigExtension(String, int, String, String, String[]) may expose internal representation by storing an externally mutable object into ConfigExtension.applicationMALICIOUS_CODEEI_EXPOSE_REP228Medium

org.asteriskjava.config.dialplan.ExtensionsConfigFileReader

BugCategoryDetailsLinePriority
Method org.asteriskjava.config.dialplan.ExtensionsConfigFileReader.harvestApplicationWithArguments(String) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION109Medium
Method org.asteriskjava.config.dialplan.ExtensionsConfigFileReader.processQuotesAndSlashes(String, char, char) concatenates strings using + in a loopPERFORMANCESBSC_USE_STRINGBUFFER_CONCATENATION181Medium

org.asteriskjava.fastagi.AbstractAgiServer

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.AbstractAgiServer.getMaximumPoolSize() is unsynchronized, org.asteriskjava.fastagi.AbstractAgiServer.setMaximumPoolSize(int) is synchronizedMT_CORRECTNESSUG_SYNC_SET_UNSYNC_GET137Medium
org.asteriskjava.fastagi.AbstractAgiServer.getPoolSize() is unsynchronized, org.asteriskjava.fastagi.AbstractAgiServer.setPoolSize(int) is synchronizedMT_CORRECTNESSUG_SYNC_SET_UNSYNC_GET101Medium

org.asteriskjava.fastagi.AbstractMappingStrategy

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.AbstractMappingStrategy.getClassLoader() creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged blockBAD_PRACTICEDP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED98Medium

org.asteriskjava.fastagi.AgiServerThread

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.fastagi.AgiServerThread.agiServer; locked 75% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC81Medium

org.asteriskjava.fastagi.ResourceBundleMappingStrategy

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.fastagi.ResourceBundleMappingStrategy.resourceBundleName; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC108Medium

org.asteriskjava.fastagi.ScriptEngineMappingStrategy

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.ScriptEngineMappingStrategy.getClassLoader() creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged blockBAD_PRACTICEDP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED209Medium

org.asteriskjava.fastagi.command.ExecCommand

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.command.ExecCommand.getOptions() may expose internal representation by returning ExecCommand.optionsMALICIOUS_CODEEI_EXPOSE_REP95Medium

org.asteriskjava.fastagi.command.GosubCommand

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.command.GosubCommand.getArguments() may expose internal representation by returning GosubCommand.argumentsMALICIOUS_CODEEI_EXPOSE_REP137Medium
org.asteriskjava.fastagi.command.GosubCommand.setArguments(String[]) may expose internal representation by storing an externally mutable object into GosubCommand.argumentsMALICIOUS_CODEEI_EXPOSE_REP2147Medium

org.asteriskjava.fastagi.internal.AgiRequestImpl

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.internal.AgiRequestImpl.getEnhanced() has Boolean return type and returns explicit nullBAD_PRACTICENP_BOOLEAN_RETURN_NULL365Medium

org.asteriskjava.fastagi.internal.AsyncAgiConnectionHandler

BugCategoryDetailsLinePriority
org.asteriskjava.fastagi.internal.AsyncAgiConnectionHandler.onAsyncAgiEndEvent(AsyncAgiEvent) ignores exceptional return value of java.util.concurrent.BlockingQueue.offer(Object)BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE104Medium
org.asteriskjava.fastagi.internal.AsyncAgiConnectionHandler.onAsyncAgiExecEvent(AsyncAgiEvent) ignores exceptional return value of java.util.concurrent.BlockingQueue.offer(Object)BAD_PRACTICERV_RETURN_VALUE_IGNORED_BAD_PRACTICE99Medium

org.asteriskjava.live.ChannelStateHistoryEntry

BugCategoryDetailsLinePriority
org.asteriskjava.live.ChannelStateHistoryEntry.getDate() may expose internal representation by returning ChannelStateHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP57Medium
new org.asteriskjava.live.ChannelStateHistoryEntry(Date, ChannelState) may expose internal representation by storing an externally mutable object into ChannelStateHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP246Medium

org.asteriskjava.live.DialedChannelHistoryEntry

BugCategoryDetailsLinePriority
org.asteriskjava.live.DialedChannelHistoryEntry.getDate() may expose internal representation by returning DialedChannelHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP52Medium
new org.asteriskjava.live.DialedChannelHistoryEntry(Date, AsteriskChannel) may expose internal representation by storing an externally mutable object into DialedChannelHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP241Medium

org.asteriskjava.live.ExtensionHistoryEntry

BugCategoryDetailsLinePriority
org.asteriskjava.live.ExtensionHistoryEntry.getDate() may expose internal representation by returning ExtensionHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP57Medium
new org.asteriskjava.live.ExtensionHistoryEntry(Date, Extension) may expose internal representation by storing an externally mutable object into ExtensionHistoryEntry.dateMALICIOUS_CODEEI_EXPOSE_REP246Medium

org.asteriskjava.live.LinkedChannelHistoryEntry

BugCategoryDetailsLinePriority
org.asteriskjava.live.LinkedChannelHistoryEntry.getDateLinked() may expose internal representation by returning LinkedChannelHistoryEntry.dateLinkedMALICIOUS_CODEEI_EXPOSE_REP53Medium
org.asteriskjava.live.LinkedChannelHistoryEntry.getDateUnlinked() may expose internal representation by returning LinkedChannelHistoryEntry.dateUnlinkedMALICIOUS_CODEEI_EXPOSE_REP63Medium
new org.asteriskjava.live.LinkedChannelHistoryEntry(Date, AsteriskChannel) may expose internal representation by storing an externally mutable object into LinkedChannelHistoryEntry.dateLinkedMALICIOUS_CODEEI_EXPOSE_REP242Medium
org.asteriskjava.live.LinkedChannelHistoryEntry.setDateUnlinked(Date) may expose internal representation by storing an externally mutable object into LinkedChannelHistoryEntry.dateUnlinkedMALICIOUS_CODEEI_EXPOSE_REP273Medium

org.asteriskjava.live.internal.AgentManager

BugCategoryDetailsLinePriority
Null pointer dereference of System.out in org.asteriskjava.live.internal.AgentManager.initialize()CORRECTNESSNP_ALWAYS_NULL93High

org.asteriskjava.live.internal.AsteriskChannelImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskChannelImpl.linkedChannel; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC517Medium

org.asteriskjava.live.internal.AsteriskQueueEntryImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskQueueEntryImpl.state; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC80Medium

org.asteriskjava.live.internal.AsteriskServerImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.eventListener; locked 75% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1193Medium
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.initialized; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1066Medium
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.managerEventListenerProxy; locked 42% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1188Medium
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.skipQueues; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC156Medium
Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.version; locked 75% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1058Medium

org.asteriskjava.live.internal.CallDetailRecordImpl

BugCategoryDetailsLinePriority
org.asteriskjava.live.internal.CallDetailRecordImpl.getAnswerDate() may expose internal representation by returning CallDetailRecordImpl.answerDateMALICIOUS_CODEEI_EXPOSE_REP128Medium
org.asteriskjava.live.internal.CallDetailRecordImpl.getEndDate() may expose internal representation by returning CallDetailRecordImpl.endDateMALICIOUS_CODEEI_EXPOSE_REP158Medium
org.asteriskjava.live.internal.CallDetailRecordImpl.getStartDate() may expose internal representation by returning CallDetailRecordImpl.startDateMALICIOUS_CODEEI_EXPOSE_REP173Medium

org.asteriskjava.live.internal.ChannelManager

BugCategoryDetailsLinePriority
Method org.asteriskjava.live.internal.ChannelManager.handleStatusEvent(StatusEvent) makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR227Medium

org.asteriskjava.live.internal.MeetMeUserImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.live.internal.MeetMeUserImpl.state; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC93Medium

org.asteriskjava.manager.action.AbstractManagerAction

BugCategoryDetailsLinePriority
org.asteriskjava.manager.action.AbstractManagerAction.toString() might ignore java.lang.ExceptionBAD_PRACTICEDE_MIGHT_IGNORE76Medium
Exception is caught when Exception is not thrown in org.asteriskjava.manager.action.AbstractManagerAction.toString()STYLEREC_CATCH_EXCEPTION76Medium

org.asteriskjava.manager.event.ManagerEvent

BugCategoryDetailsLinePriority
org.asteriskjava.manager.event.ManagerEvent.getDateReceived() may expose internal representation by returning ManagerEvent.dateReceivedMALICIOUS_CODEEI_EXPOSE_REP83Medium
org.asteriskjava.manager.event.ManagerEvent.setDateReceived(Date) may expose internal representation by storing an externally mutable object into ManagerEvent.dateReceivedMALICIOUS_CODEEI_EXPOSE_REP291Medium

org.asteriskjava.manager.internal.ManagerConnectionImpl

BugCategoryDetailsLinePriority
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.defaultResponseTimeout; locked 57% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1361Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.eventMask; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1361Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.hostname; locked 60% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC247Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.password; locked 50% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC361Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.reader; locked 61% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC901Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.readerThread; locked 85% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC1399Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.socket; locked 57% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC881Medium
Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.writer; locked 66% of timeMT_CORRECTNESSIS2_INCONSISTENT_SYNC904Medium

org.asteriskjava.manager.response.GetConfigResponse

BugCategoryDetailsLinePriority
Method org.asteriskjava.manager.response.GetConfigResponse.getCategories() makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR80Medium
Method org.asteriskjava.manager.response.GetConfigResponse.getLines(int) makes inefficient use of keySet iterator instead of entrySet iteratorPERFORMANCEWMI_WRONG_MAP_ITERATOR145Medium

org.asteriskjava.manager.response.ManagerResponse

BugCategoryDetailsLinePriority
org.asteriskjava.manager.response.ManagerResponse.getDateReceived() may expose internal representation by returning ManagerResponse.dateReceivedMALICIOUS_CODEEI_EXPOSE_REP112Medium
org.asteriskjava.manager.response.ManagerResponse.setDateReceived(Date) may expose internal representation by storing an externally mutable object into ManagerResponse.dateReceivedMALICIOUS_CODEEI_EXPOSE_REP2121Medium

org.asteriskjava.tools.HtmlEventTracer

BugCategoryDetailsLinePriority
Null pointer dereference of System.err in org.asteriskjava.tools.HtmlEventTracer.getProperty(Object, String)CORRECTNESSNP_ALWAYS_NULL195High
Null pointer dereference of System.err in org.asteriskjava.tools.HtmlEventTracer.main(String[])CORRECTNESSNP_ALWAYS_NULL69High
Null pointer dereference of System.out in org.asteriskjava.tools.HtmlEventTracer.onManagerEvent(ManagerEvent)CORRECTNESSNP_ALWAYS_NULL103High
Null pointer dereference of System.err in org.asteriskjava.tools.HtmlEventTracer.write()CORRECTNESSNP_ALWAYS_NULL163High
Null pointer dereference of System.err in org.asteriskjava.tools.HtmlEventTracer.main(String[])CORRECTNESSNP_ALWAYS_NULL81Medium

org.asteriskjava.util.DateUtil

BugCategoryDetailsLinePriority
org.asteriskjava.util.DateUtil.overrideCurrentDate(Date) may expose internal static state by storing a mutable object into a static field org.asteriskjava.util.DateUtil.currentDateMALICIOUS_CODEEI_EXPOSE_STATIC_REP255Medium
public static org.asteriskjava.util.DateUtil.getDate() may expose internal representation by returning DateUtil.currentDateMALICIOUS_CODEMS_EXPOSE_REP71Medium

org.asteriskjava.util.internal.Log4JLogger

BugCategoryDetailsLinePriority
Method org.asteriskjava.util.internal.Log4JLogger.debug(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES113Medium
Method org.asteriskjava.util.internal.Log4JLogger.debug(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES128Medium
Method org.asteriskjava.util.internal.Log4JLogger.error(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES203Medium
Method org.asteriskjava.util.internal.Log4JLogger.error(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES218Medium
Method org.asteriskjava.util.internal.Log4JLogger.fatal(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES233Medium
Method org.asteriskjava.util.internal.Log4JLogger.fatal(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES248Medium
Method org.asteriskjava.util.internal.Log4JLogger.info(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES143Medium
Method org.asteriskjava.util.internal.Log4JLogger.info(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES158Medium
Method org.asteriskjava.util.internal.Log4JLogger.trace(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES82Medium
Method org.asteriskjava.util.internal.Log4JLogger.trace(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES98Medium
Method org.asteriskjava.util.internal.Log4JLogger.warn(Object) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES173Medium
Method org.asteriskjava.util.internal.Log4JLogger.warn(Object, Throwable) uses the same code for two branchesSTYLEDB_DUPLICATE_BRANCHES188Medium