Static analysis tool

The tool will be implemented in Java. There are two tools that you may use

to help you with analyzing the code:

• Eclipse JDT, an Abstract Syntax Tree (AST) parser that is part of the Eclipse IDE.

• JavaParser, an open source AST parser for Java.

Bug Patterns: Need to implement a total of 10 bug patterns. The descriptions of the bug patterns are listed below:

1. Class defines equals() but not hashCode(). This class overrides equals(Object), but does not override hashCode().

Therefore, the class may violate the invariant that equal objects must have equal hashcodes. From FindBugs1

2. Comparison of String objects using == or !=. This code compares [login to view URL] objects for reference equality using the == or != operators. Unless both strings are either constants in a source file, or have been interned using the [login to view URL]() method, the same string value may be represented by two different String objects. Consider using the equals(Object) method instead. From FindBugs2

3. Method may fail to close stream on exception. The method creates an IO stream object, does not assign it to any fields, pass it to other methods, or return it, and does not appear to close it on all possible exception paths out of the method. This may result in a file descriptor leak. It is generally a good idea to use a finally block to ensure that streams are closed. From FindBugs3

4. Condition has no effect. This condition always produces the same result as the value of the involved variable was narrowed before. Namely, the condition or the boolean variable in if/while always returns either true or false. Probably something else was meant or condition can be removed. From FindBugs4

For example:

if (true) {




boolean var = false;


if (var) {



5. Inadequate logging information in catch blocks. Developers usually rely on logs for error diagnostics when exceptions occur. However, sometimes, duplicate logging statements in different catch blocks of the same try block may cause debugging difficulties since the logs fail to tell which exception occurred.

For example:


} catch (AlreadyClosedException closedException) {

[login to view URL]("Connection to AMQP service is lost.");

} catch (ConnectException connectException) {

[login to view URL]("Connection to AMQP service is lost.");



6. Unneeded computation in loops. There may be unneeded computation in loops, where you call a method inside a loop, but the return value is never used.

For example:


for (int i = 0; i < 1000; i++){

Result r = computeResult(i); // unneeded computation




7. Unused methods. Detect both private and public methods that are not referenced/called anywhere in the code.

8. Empty exception. There is no debug message when an exception occurs, which may cause debugging difficulties.

9. Unfinished exception handling code. There is a comment such as TODO or FIXME in the catch block of exceptions.

10. Over-catching an exception with system-termination. Developers are over-catching an exception (i.e., catching very high-level exceptions, such as Exception or RunTimeException), and are calling abort or [login to view URL]() in the catch block.

You will need to design test cases for your code. For each bug pattern, you need to design some test cases, and more importantly, you need to describe your design decision in the final report. You may use any testing framework (e.g., JUnit or TestNG) for your test case. Must

provide a valid reason for your design.

You need to run your tool on two systems: Hadoop 3.0.0 and CloudStack 4.9.

Skills: C Programming, Java, JavaFX, Javascript, Software Architecture

See more: code analysis tool, analysis tool vbcode msaccess, imei number analysis tool, static code analysis tools c++, static analysis tools example, static code analysis tools comparison, static code analysis tools java, static analysis tools in agile, static code analysis tools c#, static analysis tools in software testing, static analysis tools for c, spss data analysis tool communication study, statistical analysis tool access, imei analysis tool, using ups billing analysis tool sql server database, pentaho analysis tool, tool scraping message board posts, linear static analysis using msc patran, call detail record analysis tool freeware, domain analysis tool php

About the Employer:
( 0 reviews ) Montreal, Canada

Project ID: #17768209

9 freelancers are bidding on average $163 for this job


I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environ More

$120 CAD in 3 days
(142 Reviews)

Hello this is Asad, i have a vast experience in java programming, if you need an A grade, contact me right now.

$222 CAD in 3 days
(114 Reviews)

Hi, bro. Nice to meet you on here. I have read your description CAREFULLY so I am very confidence for your project I am very experienced and skillful with that kinds of project. I have full experiences so I can com More

$100 CAD in 3 days
(75 Reviews)

How are you, Dear sir/madam? It's very worthwhile chance for me to let you know my skills and proposal about this project. I am an honest developer who have rich experiences in java I have just read your require More

$250 CAD in 1 day
(66 Reviews)

Hi, bro. Nice to meet you on here. I have read your description CAREFULLY so I am very confidence for your project. I am very experienced and skillful with java for stocks. I have full experiences so I can comple More

$155 CAD in 3 days
(34 Reviews)

Greeting!. Yours work is one of the tasks that can be done very perfectly by us. We work within your budget, Within your deadline. We are highly experienced Post Graduate Engineers, IT, ITES, Software, Infrastructure P More

$30 CAD in 3 days
(10 Reviews)

Hi, I am an experienced programmer and I'm sure I can complete your project asap. Please contact me and tell about your project details. I promise a high quality and punctual work. Thanks.

$155 CAD in 3 days
(2 Reviews)

We will deliver exceptional results. We possess a combination of skills and experience that make us stand out from the crowd. We have: -Industry experience. -Experience in performing certain tasks or duties. -Tec More

$277 CAD in 20 days
(1 Review)

I have experience in software development in Java desktop for the industrial pharmaceutical area. I would like to be able to carry out the proposed task.

$155 CAD in 5 days
(0 Reviews)