The following document contains the results of FindBugs Report
FindBugs Version is 1.2.1
Threshold is Low
Effort is Default
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 1019 | 93 | 0 | 0 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Usage of GetResource in org.asteriskjava.Cli.getVersion() may be unsafe if class is extended | BAD_PRACTICE | UI_INHERITANCE_UNSAFE_GETRESOURCE | 89 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.config.ConfigElement.getFileName() and org.asteriskjava.config.ConfigFileImpl.getFilename() | BAD_PRACTICE | NM_CONFUSING | 29 |
| Confusing to have methods org.asteriskjava.config.ConfigElement.setFileName(String) and org.asteriskjava.manager.action.GetConfigAction.setFilename(String) | BAD_PRACTICE | NM_CONFUSING | 34-35 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.config.dialplan.ConfigExtension.getApplication() may expose internal representation by returning ConfigExtension.application | MALICIOUS_CODE | EI_EXPOSE_REP | 55 |
| org.asteriskjava.config.dialplan.ConfigExtension.ConfigExtension(String, int, String, String, String[]) may expose internal representation by storing an externally mutable object into ConfigExtension.application | MALICIOUS_CODE | EI_EXPOSE_REP2 | 28 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.asteriskjava.config.dialplan.ExtensionsConfigFileReader.harvestApplicationWithArguments(String) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 109 |
| Method org.asteriskjava.config.dialplan.ExtensionsConfigFileReader.processQuotesAndSlashes(String, char, char) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 181 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.fastagi.AbstractMappingStrategy.getClassLoader() creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged block | BAD_PRACTICE | DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED | 90 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.fastagi.AgiOperations.getUniqueId() and org.asteriskjava.manager.event.CoreShowChannelEvent.getUniqueid() | BAD_PRACTICE | NM_CONFUSING | 89 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.fastagi.DefaultAgiServer.loadConfig() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 213 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Inconsistent synchronization of org.asteriskjava.fastagi.ResourceBundleMappingStrategy.resourceBundleName; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 108 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.fastagi.ScriptEngineMappingStrategy.getClassLoader() creates a java.net.URLClassLoader classloader, which should be performed within a doPrivileged block | BAD_PRACTICE | DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED | 207 |
| org.asteriskjava.fastagi.ScriptEngineMappingStrategy.ScriptEngineMappingStrategy(String[], String[]) may expose internal representation by storing an externally mutable object into ScriptEngineMappingStrategy.libPath | MALICIOUS_CODE | EI_EXPOSE_REP2 | 78 |
| org.asteriskjava.fastagi.ScriptEngineMappingStrategy.ScriptEngineMappingStrategy(String[], String[]) may expose internal representation by storing an externally mutable object into ScriptEngineMappingStrategy.scriptPath | MALICIOUS_CODE | EI_EXPOSE_REP2 | 77 |
| org.asteriskjava.fastagi.ScriptEngineMappingStrategy.setLibPath(String[]) may expose internal representation by storing an externally mutable object into ScriptEngineMappingStrategy.libPath | MALICIOUS_CODE | EI_EXPOSE_REP2 | 100 |
| org.asteriskjava.fastagi.ScriptEngineMappingStrategy.setScriptPath(String[]) may expose internal representation by storing an externally mutable object into ScriptEngineMappingStrategy.scriptPath | MALICIOUS_CODE | EI_EXPOSE_REP2 | 89 |
| Bug | Category | Details | Line |
|---|---|---|---|
| The class org.asteriskjava.fastagi.ScriptEngineMappingStrategy$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 182-185 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.fastagi.internal.AgiConnectionHandler.logToAsterisk(AgiChannel, String) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 202 |
| org.asteriskjava.fastagi.internal.AgiConnectionHandler.setStatusVariable(AgiChannel, String) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 185 |
| Load of known null value in org.asteriskjava.fastagi.internal.AgiConnectionHandler.run() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 121 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.live.ChannelStateHistoryEntry.getDate() may expose internal representation by returning ChannelStateHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP | 57 |
| org.asteriskjava.live.ChannelStateHistoryEntry.ChannelStateHistoryEntry(Date, ChannelState) may expose internal representation by storing an externally mutable object into ChannelStateHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP2 | 46 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.live.DialedChannelHistoryEntry.getDate() may expose internal representation by returning DialedChannelHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP | 52 |
| org.asteriskjava.live.DialedChannelHistoryEntry.DialedChannelHistoryEntry(Date, AsteriskChannel) may expose internal representation by storing an externally mutable object into DialedChannelHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP2 | 41 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.live.ExtensionHistoryEntry.getDate() may expose internal representation by returning ExtensionHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP | 57 |
| org.asteriskjava.live.ExtensionHistoryEntry.ExtensionHistoryEntry(Date, Extension) may expose internal representation by storing an externally mutable object into ExtensionHistoryEntry.date | MALICIOUS_CODE | EI_EXPOSE_REP2 | 46 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.live.LinkedChannelHistoryEntry.getDateLinked() may expose internal representation by returning LinkedChannelHistoryEntry.dateLinked | MALICIOUS_CODE | EI_EXPOSE_REP | 53 |
| org.asteriskjava.live.LinkedChannelHistoryEntry.getDateUnlinked() may expose internal representation by returning LinkedChannelHistoryEntry.dateUnlinked | MALICIOUS_CODE | EI_EXPOSE_REP | 63 |
| org.asteriskjava.live.LinkedChannelHistoryEntry.LinkedChannelHistoryEntry(Date, AsteriskChannel) may expose internal representation by storing an externally mutable object into LinkedChannelHistoryEntry.dateLinked | MALICIOUS_CODE | EI_EXPOSE_REP2 | 42 |
| org.asteriskjava.live.LinkedChannelHistoryEntry.setDateUnlinked(Date) may expose internal representation by storing an externally mutable object into LinkedChannelHistoryEntry.dateUnlinked | MALICIOUS_CODE | EI_EXPOSE_REP2 | 73 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.eventListener; locked 75% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1183 |
| Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.initialized; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1057 |
| Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.skipQueues; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 155 |
| Inconsistent synchronization of org.asteriskjava.live.internal.AsteriskServerImpl.version; locked 75% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1049 |
| Should org.asteriskjava.live.internal.AsteriskServerImpl.getVersion(String) return a zero length array rather than null? | STYLE | PZLA_PREFER_ZERO_LENGTH_ARRAYS | 559 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.live.internal.CallDetailRecordImpl.getAnswerDate() may expose internal representation by returning CallDetailRecordImpl.answerDate | MALICIOUS_CODE | EI_EXPOSE_REP | 128 |
| org.asteriskjava.live.internal.CallDetailRecordImpl.getEndDate() may expose internal representation by returning CallDetailRecordImpl.endDate | MALICIOUS_CODE | EI_EXPOSE_REP | 158 |
| org.asteriskjava.live.internal.CallDetailRecordImpl.getStartDate() may expose internal representation by returning CallDetailRecordImpl.startDate | MALICIOUS_CODE | EI_EXPOSE_REP | 173 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.asteriskjava.live.internal.ChannelManager.handleStatusEvent(StatusEvent) makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 227 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Inconsistent synchronization of org.asteriskjava.manager.ManagerEventListenerProxy.target; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 77 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.manager.action.AbstractManagerAction.toString() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 76 |
| Exception is caught when Exception is not thrown in org.asteriskjava.manager.action.AbstractManagerAction.toString() | STYLE | REC_CATCH_EXCEPTION | 76 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.AbstractChannelStateEvent.getChannelStateDesc() and org.asteriskjava.manager.event.CoreShowChannelEvent.getChannelstatedesc() | BAD_PRACTICE | NM_CONFUSING | 88 |
| Confusing to have methods org.asteriskjava.manager.event.AbstractChannelStateEvent.setChannelStateDesc(String) and org.asteriskjava.manager.event.CoreShowChannelEvent.setChannelstatedesc(String) | BAD_PRACTICE | NM_CONFUSING | 99-100 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.AgentCallbackLogoffEvent.setUniqueId(String) and org.asteriskjava.manager.event.CoreShowChannelEvent.setUniqueid(String) | BAD_PRACTICE | NM_CONFUSING | 110-111 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.CoreShowChannelEvent.getBridgeduniqueid() and org.asteriskjava.manager.event.StatusEvent.getBridgedUniqueId() | BAD_PRACTICE | NM_CONFUSING | 138 |
| The field name org.asteriskjava.manager.event.CoreShowChannelEvent.ChannelState doesn't start with an lower case letter | BAD_PRACTICE | NM_FIELD_NAMING_CONVENTION | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.JoinEvent.setCallerIdNum(String) and org.asteriskjava.manager.event.CoreShowChannelEvent.setCalleridnum(String) | BAD_PRACTICE | NM_CONFUSING | 83-84 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.manager.event.ManagerEvent.toString() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 287 |
| org.asteriskjava.manager.event.ManagerEvent.getDateReceived() may expose internal representation by returning ManagerEvent.dateReceived | MALICIOUS_CODE | EI_EXPOSE_REP | 83 |
| org.asteriskjava.manager.event.ManagerEvent.setDateReceived(Date) may expose internal representation by storing an externally mutable object into ManagerEvent.dateReceived | MALICIOUS_CODE | EI_EXPOSE_REP2 | 91 |
| Exception is caught when Exception is not thrown in org.asteriskjava.manager.event.ManagerEvent.toString() | STYLE | REC_CATCH_EXCEPTION | 287 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.MeetMeLeaveEvent.getCallerIdNum() and org.asteriskjava.manager.event.CoreShowChannelEvent.getCalleridnum() | BAD_PRACTICE | NM_CONFUSING | 75 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.NewChannelEvent.setAccountCode(String) and org.asteriskjava.manager.event.CoreShowChannelEvent.setAccountcode(String) | BAD_PRACTICE | NM_CONFUSING | 62-63 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.PeerlistCompleteEvent.setEventList(String) and org.asteriskjava.manager.event.CoreShowChannelsCompleteEvent.setEventlist(String) | BAD_PRACTICE | NM_CONFUSING | 84-85 |
| Confusing to have methods org.asteriskjava.manager.event.PeerlistCompleteEvent.setListItems(Integer) and org.asteriskjava.manager.event.CoreShowChannelsCompleteEvent.setListitems(Integer) | BAD_PRACTICE | NM_CONFUSING | 67-68 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.RegistrationsCompleteEvent.getListItems() and org.asteriskjava.manager.event.CoreShowChannelsCompleteEvent.getListitems() | BAD_PRACTICE | NM_CONFUSING | 55 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.StatusEvent.getAccountCode() and org.asteriskjava.manager.event.CoreShowChannelEvent.getAccountcode() | BAD_PRACTICE | NM_CONFUSING | 149 |
| Confusing to have methods org.asteriskjava.manager.event.StatusEvent.setBridgedUniqueId(String) and org.asteriskjava.manager.event.CoreShowChannelEvent.setBridgeduniqueid(String) | BAD_PRACTICE | NM_CONFUSING | 356-357 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.event.VoicemailUserEntryEvent.setVoicemailbox(String) and org.asteriskjava.manager.response.SipShowPeerResponse.setVoiceMailbox(String) | BAD_PRACTICE | NM_CONFUSING | 115-116 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in org.asteriskjava.manager.internal.AbstractBuilder.setAttributes(Object, Map, Set) | STYLE | REC_CATCH_EXCEPTION | 112 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.manager.internal.ManagerConnectionImpl.determineVersion() might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 647 |
| Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.readerThread; locked 85% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1368 |
| Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.socket; locked 61% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 398 |
| Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.writer; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 882 |
| Inconsistent synchronization of org.asteriskjava.manager.internal.ManagerConnectionImpl.version; locked 75% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 363 |
| Exception is caught when Exception is not thrown in org.asteriskjava.manager.internal.ManagerConnectionImpl.getRawVersion() | STYLE | REC_CATCH_EXCEPTION | 672 |
| Wait not in loop in org.asteriskjava.manager.internal.ManagerConnectionImpl.doLogin(long, String) | MT_CORRECTNESS | WA_NOT_IN_LOOP | 499 |
| Wait not in loop in org.asteriskjava.manager.internal.ManagerConnectionImpl.sendAction(ManagerAction, long) | MT_CORRECTNESS | WA_NOT_IN_LOOP | 812 |
| Wait not in loop in org.asteriskjava.manager.internal.ManagerConnectionImpl.sendEventGeneratingAction(EventGeneratingAction, long) | MT_CORRECTNESS | WA_NOT_IN_LOOP | 959 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.asteriskjava.manager.response.GetConfigResponse.getCategories() makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 80 |
| Method org.asteriskjava.manager.response.GetConfigResponse.getLines(int) makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 145 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.manager.response.ManagerResponse.getDateReceived() may expose internal representation by returning ManagerResponse.dateReceived | MALICIOUS_CODE | EI_EXPOSE_REP | 112 |
| org.asteriskjava.manager.response.ManagerResponse.setDateReceived(Date) may expose internal representation by storing an externally mutable object into ManagerResponse.dateReceived | MALICIOUS_CODE | EI_EXPOSE_REP2 | 121 |
| Confusing to have methods org.asteriskjava.manager.response.ManagerResponse.getEventList() and org.asteriskjava.manager.event.CoreShowChannelsCompleteEvent.getEventlist() | BAD_PRACTICE | NM_CONFUSING | 172 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Confusing to have methods org.asteriskjava.manager.response.SipShowPeerResponse.getVoiceMailbox() and org.asteriskjava.manager.event.VoicemailUserEntryEvent.getVoicemailbox() | BAD_PRACTICE | NM_CONFUSING | 209 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Exception is caught when Exception is not thrown in org.asteriskjava.tools.HtmlEventTracer.getProperty(Object, String) | STYLE | REC_CATCH_EXCEPTION | 194 |
| Bug | Category | Details | Line |
|---|---|---|---|
| org.asteriskjava.util.DateUtil.overrideCurrentDate(Date) may expose internal static state by storing a mutable object into a static field org.asteriskjava.util.DateUtil.currentDate | MALICIOUS_CODE | EI_EXPOSE_STATIC_REP2 | 55 |
| public static org.asteriskjava.util.DateUtil.getDate() may expose internal representation by returning DateUtil.currentDate | MALICIOUS_CODE | MS_EXPOSE_REP | 71 |
| Bug | Category | Details | Line |
|---|---|---|---|
| Method org.asteriskjava.util.internal.Log4JLogger.debug(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 113 |
| Method org.asteriskjava.util.internal.Log4JLogger.debug(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 128 |
| Method org.asteriskjava.util.internal.Log4JLogger.error(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 203 |
| Method org.asteriskjava.util.internal.Log4JLogger.error(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 218 |
| Method org.asteriskjava.util.internal.Log4JLogger.fatal(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 233 |
| Method org.asteriskjava.util.internal.Log4JLogger.fatal(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 248 |
| Method org.asteriskjava.util.internal.Log4JLogger.info(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 143 |
| Method org.asteriskjava.util.internal.Log4JLogger.info(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 158 |
| Method org.asteriskjava.util.internal.Log4JLogger.trace(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 82 |
| Method org.asteriskjava.util.internal.Log4JLogger.trace(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 98 |
| Method org.asteriskjava.util.internal.Log4JLogger.warn(Object) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 173 |
| Method org.asteriskjava.util.internal.Log4JLogger.warn(Object, Throwable) uses the same code for two branches | STYLE | DB_DUPLICATE_BRANCHES | 188 |
| The field org.asteriskjava.util.internal.Log4JLogger.logger is transient but isn't set by deserialization | BAD_PRACTICE | SE_TRANSIENT_FIELD_NOT_RESTORED | Not available |
| Bug | Category | Details | Line |
|---|---|---|---|
| The field org.asteriskjava.util.internal.Slf4JLogger.logger is transient but isn't set by deserialization | BAD_PRACTICE | SE_TRANSIENT_FIELD_NOT_RESTORED | Not available |