Git Product home page Git Product logo

jdeodorant's Introduction

JDeodorant

JDeodorant is an Eclipse plug-in that detects design problems in Java software, known as code smells, and recommends appropriate refactorings to resolve them.

For the moment, the tool supports five code smells, namely Feature Envy, Type/State Checking, Long Method, God Class and Duplicated Code.

  • Feature Envy problems can be resolved by appropriate Move Method refactorings.
  • Type Checking problems can be resolved by appropriate Replace Conditional with Polymorphism refactorings.
  • State Checking problems can be resolved by appropriate Replace Type code with State/Strategy refactorings.
  • Long Method problems can be resolved by appropriate Extract Method refactorings.
  • God Class problems can be resolved by appropriate Extract Class refactorings.
  • Duplicated Code problems can be resolved by appropriate Extract Clone refactorings.

JDeodorant is the outcome of research conducted in the Software Refactoring Lab at the Department of Computer Science and Software Engineering, Concordia University, Canada and the Software Engineering Group at the Department of Applied Informatics, University of Macedonia, Thessaloniki, Greece.

Installation & Configuration

Please follow the steps described in this guide.

JDeodorant can be easily installed in your Eclipse IDE using the Eclipse Marketplace Client.

To enable the analysis of large Java projects, edit the eclipse.ini file inside the Eclipse installation folder and increase the value for the Xmx option (maximum size of the memory allocation pool).

-vmargs
-Xms128m
-Xmx4096m
-XX:PermSize=128m

Tutorials

Duplicated Code
Code Smell Visualization
God Class

Research

If you are interested to learn how exactly JDeodorant works, please have a look at the following papers:

Duplicated Code
  • Nikolaos Tsantalis, Davood Mazinanian, and Shahriar Rostami, "Clone Refactoring with Lambda Expressions," 39th International Conference on Software Engineering (ICSE'2017), Buenos Aires, Argentina, May 20-28, 2017.
  • Nikolaos Tsantalis, Davood Mazinanian, and Giri Panamoottil Krishnan, "Assessing the Refactorability of Software Clones," IEEE Transactions on Software Engineering, vol. 41, no. 11, pp. 1055-1090, November 2015.
  • Giri Panamoottil Krishnan, and Nikolaos Tsantalis, "Unification and Refactoring of Clones," pp. 104-113, IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE'2014), 2014 Software Evolution Week, Antwerp, Belgium, February 3-7, 2014.
  • Giri Panamoottil Krishnan, and Nikolaos Tsantalis, "Refactoring Clones: An Optimization Problem," pp. 360-363, 29th IEEE International Conference on Software Maintenance (ICSM'2013), ERA Track, Eindhoven, The Netherlands, September 22-28, 2013.
  • Davood Mazinanian, Nikolaos Tsantalis, Raphael Stein, and Zackary Valenta, "JDeodorant: Clone Refactoring," 38th International Conference on Software Engineering (ICSE'2016), Formal Tool Demonstration Session, Austin, Texas, USA, May 14-22, 2016.
  • Nikolaos Tsantalis, "JDeodorant: Clone Refactoring Support beyond IDEs," IEEE Software Blog, October 16, 2016.
Long Method
God Class
Type/State Checking
Feature Envy

If you are using JDeodorant in your research, please cite at least one of the aforementioned papers.

jdeodorant's People

Contributors

andyqiao1985 avatar dmazinanian avatar fokaefs avatar giripk2002 avatar kdextras avatar onewhl avatar raphistein avatar teohaik avatar tsantalis avatar zackaryvalenta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jdeodorant's Issues

NPE (SQuirreLSQL-CCFinder)

Clone # 694 (Group 5091, Pair 3-4): net.sourceforge.squirrel_sql.plugins.refactoring.prefs.RefactoringPreferencesPanel#addQualifyTableNamesCheckBox (row 2608) and net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanel#addQualifyTableNamesCheckBox (row 2609)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.replaceFieldAssignmentsWithSetterMethodInvocations(ExtractCloneRefactoring.java:3409)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processASTNodeWithDifferences(ExtractCloneRefactoring.java:3168)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processCloneStructureNode(ExtractCloneRefactoring.java:2747)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1176)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:327)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4500)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Is there a way to run JDeodrant through Commandline? "help wanted"

I have been going through the codebase, and could not find a way that could help me just identify the code smell by running it through the command-line for my repos without importing them to eclipse. I found the Standalone.java class but it still requires my project to be in workspace. Is there a workaround for this? Thanks in advance.

Try statement not added after refactoring Long Method

Project : crawler4j (https://github.com/yasserg/crawler4j)
package : edu.uci.ics.crawler4j.fetcher
classname : PageFetchResult
Function : public boolean fetchContent(Page page)
variable consideration : page

When I perform LongMethod refactoring on the particular method, try catch statement is removed from the original method and exception is not added in the refactored method. So it is throwing compilation error while I'm using headless application. I could reproduce the same error in other files too if u need

IllegalArgumentException (JMEter-CCFinder)

Clone # 565 (Group 4854, Pair 1-2): org.apache.jmeter.protocol.jdbc.config.DataSourceElementBeanInfo#DataSourceElementBeanInfo (row 1580) and org.apache.jmeter.protocol.jdbc.sampler.JDBCSamplerBeanInfo#JDBCSamplerBeanInfo (row 1581)

java.lang.IllegalArgumentException: Invalid identifier : >class<
    at org.eclipse.jdt.core.dom.SimpleName.setIdentifier(SimpleName.java:195)
    at org.eclipse.jdt.core.dom.AST.newSimpleName(AST.java:2202)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:721)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:331)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4833)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:667)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Unable to run JDeodorant through command line in Windows with Eclipse Mars and JRE 1.8

I have successfully compiled and run the JDeodorant headless project named eclipse.commandline in Win8 on eclipse mars2 and jre 1.8.

But after exporting it as jar through PDE, there are multiple errors like:

java.lang.ClassNotFoundException: eclipse.commandline.Application cannot be found by eclipse.commandline_1.0.0.201603311240
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:573)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:191)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)

Please help.

NPE-(Apache Roller)

Null Pointer Exception in
Path - roller-master\app\src\main\java\org\apache\roller\weblogger\ui\struts2\editor
Class - org.apache.roller.weblogger.ui.struts2.editor.MediaFileSearchBean
Method - public void copyTo(org.apache.roller.weblogger.pojos.MediaFileFilter)
Variable Criterion - order
Block - B1
Exception - http://pastebin.com/tJDUPMPA

I tried it via UI also it is showing the same error

ClassCastException (JEdit-CCFinder)

Clone # 9 (Group 46, Pair 1-2): installer.OperatingSystem#getDefaultDirectory (row 20) and installer.OperatingSystem#getDefaultDirectory (row 21)

java.lang.ClassCastException: org.eclipse.jdt.internal.core.SourceType cannot be cast to org.eclipse.jdt.core.ICompilationUnit
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:496)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:327)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4484)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

IllegalArgumentException (JRuby-CCFinder)

Clone # 20 (Group 360, Pair 1-2): org.jruby.javasupport.JavaClass#declared_method (row 76) and org.jruby.javasupport.JavaClass#java_method (row 77)

java.lang.IllegalArgumentException
    at org.eclipse.jdt.core.dom.rewrite.ListRewrite.insertLast(ListRewrite.java:249)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.createParameterizedType(RefactoringUtility.java:121)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:76)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:109)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoringGapHandler.createFunctionalInterface(ExtractCloneRefactoringGapHandler.java:256)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoringGapHandler.createInterfaceType(ExtractCloneRefactoringGapHandler.java:1100)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoringGapHandler.createParameterType(ExtractCloneRefactoringGapHandler.java:1109)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1278)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:327)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4484)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

PROBLEM WHILE RUNNING HEADLESS ON MAC OS

I have been working on your plugin for quite a long time for feature envy and been trying to run it headless.
Though the eclipse.commandline project is working fine on Windows OS and Ubuntu OS it is giving compilation error detected exception on the same set of projects.

try { if(ASTReader.getSystemObject() != null && project.equals(ASTReader.getExaminedProject())) { new ASTReader(project, ASTReader.getSystemObject(), null); } else { new ASTReader(project, null); } } catch(CompilationErrorDetectedException e) { e.printStackTrace(); }

This is the part of code in Standalone file of your project and it is coming in the catch block for every set of projects run on MacOS.

Kindly help with the problem.

CloneGroup#getClonesRelativeLocation() returns invalid location

The problem happens when two methods are in the same file, yet different nested classes. An example is

Clone # 9 (Group 46, Pair 1-2): installer.OperatingSystem#getDefaultDirectory (row 20) and installer.OperatingSystem#getDefaultDirectory (row 21)

We should first check the class that contains the methods, instead of the containing file.

NPE (SQuirreLSQL-CCFinder)

Clone # 99 (Group 743, Pair 1-3): net.sourceforge.squirrel_sql.client.mainframe.action.ShowDriverWebsiteAction#actionPerformed (row 377) and net.sourceforge.squirrel_sql.client.mainframe.action.CopyDriverAction#actionPerformed (row 379)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.replaceFieldAccessesOfParameterizedFields(ExtractCloneRefactoring.java:3448)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processASTNodeWithDifferences(ExtractCloneRefactoring.java:3268)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processCloneStructureNode(ExtractCloneRefactoring.java:2641)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1180)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:331)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4820)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Columba-CloneDR)

Clone # 255 (Group 255, Pair 1-2): org.columba.mail.filter.plugins.AllTests#suite (row 1451) and org.columba.mail.folder.AllTests#suite (row 1452)

java.lang.NullPointerException
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:917)
    at org.eclipse.jdt.core.dom.SingleVariableDeclaration.accept0(SingleVariableDeclaration.java:416)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visitList(ASTRewriteFlattener.java:181)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:757)
    at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:611)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visitList(ASTRewriteFlattener.java:181)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:1116)
    at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:453)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFormatter.getFormattedResult(ASTRewriteFormatter.java:179)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doTextInsert(ASTRewriteAnalyzer.java:1357)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:647)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:802)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.rewriteParagraphList(ASTRewriteAnalyzer.java:1175)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1692)
    at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:207)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.internalRewriteAST(ASTRewrite.java:302)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:233)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.finalizeCloneExtraction(ExtractCloneRefactoring.java:2355)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:345)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4833)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:661)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-Deckard)

The symptoms are like #33: Calling PDGExpressionGap#getReturnType() for the only expression gap in the following clone pair returns Null. Consequently, CloneInfoCSVWriter is throwing NPE.

Group 137, Pair 1-2: org.eclipse.emf.ecore.util.EcoreValidator#parseTypeParameterList (row 256) and org.eclipse.emf.ecore.util.EcoreValidator#parseTypeArgumentList (row 257)

java.lang.NullPointerException
    at ca.concordia.jdeodorant.eclipse.commandline.cloneinfowriter.CloneInfoCSVWriter.writeCloneInfo(CloneInfoCSVWriter.java:156)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:765)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-NiCad)

The same old issue, the expression gap has no return type.

Clone # 618 (Group 618, Pair 2-3): org.eclipse.emf.ecore.impl.EModelElementImpl#getEAnnotation (row 1978) and org.eclipse.emf.converter.ModelConverter#getReferredEPackage (row 1979)

java.lang.NullPointerException
    at ca.concordia.jdeodorant.eclipse.commandline.cloneinfowriter.CloneInfoCSVWriter.writeCloneInfo(CloneInfoCSVWriter.java:156)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:765)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-CCfinder)

Clone # 23 (Group 303, Pair 1-2): org.eclipse.emf.ecore.presentation.EcoreEditor#init (row 58) and org.eclipse.emf.mapping.ecore2xml.presentation.Ecore2XMLEditor#init (row 59)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.getSimpleTypeBindings(RefactoringUtility.java:181)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.pullUpLocallyAccessedFields(ExtractCloneRefactoring.java:2189)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:848)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:335)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4947)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Hibernate-CloneDR)

Clone # 1231 (Group 1231, Pair 1-2): org.hibernate.persister.collection.AbstractCollectionPersister#qualify (row 4275) and org.hibernate.persister.entity.AbstractPropertyMapping#toColumns (row 4276)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:87)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1065)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:331)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4833)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:661)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Columba-CCFinder)

Clone #462 (Group 5959, Pair 1-3): org.columba.core.context.base.StructureValue#getFloat (row 1164) and org.columba.core.context.base.StructureValue#getInteger (row 1166)

java.lang.NullPointerException
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:917)
    at org.eclipse.jdt.core.dom.SingleVariableDeclaration.accept0(SingleVariableDeclaration.java:416)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visitList(ASTRewriteFlattener.java:181)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:757)
    at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:611)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFormatter.getFormattedResult(ASTRewriteFormatter.java:179)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doTextInsert(ASTRewriteAnalyzer.java:1357)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:647)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:802)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.rewriteParagraphList(ASTRewriteAnalyzer.java:1175)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1820)
    at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:453)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.internalRewriteAST(ASTRewrite.java:302)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:291)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.finalizeCloneExtraction(ExtractCloneRefactoring.java:2267)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:341)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4484)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JMeter-CCFinder)

Clone #43 (Group 1462, Pair 1-2): org.apache.jmeter.JMeter#startGui (row 111) and org.apache.jmeter.JMeterReport#startGui (row 112)

java.lang.NullPointerException
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.findPassedParameters(PreconditionExaminer.java:594)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.<init>(PreconditionExaminer.java:288)
    at gr.uom.java.ast.decomposition.cfg.mapping.PDGRegionSubTreeMapper.<init>(PDGRegionSubTreeMapper.java:40)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.getOptimalSolution(Application.java:1116)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:608)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Hey! A proposal

Hey there!

As JD
a) evolved very much,
b) is on github now,

a nice idea would be to identify the major releases as git tags in order to analyse the source code in seagle!

se.uom.gr/seagle

IllegalArgumentException (EMF-CCFinder)

Clone # 190 (Group 1807, Pair 1-2): org.eclipse.emf.mapping.command.AddOverrideCommand#getAffectedObjects (row 575) and org.eclipse.emf.mapping.command.AddOverrideCommand#getResult (row 576)

java.lang.IllegalArgumentException
    at org.eclipse.jdt.core.dom.rewrite.ListRewrite.insertLast(ListRewrite.java:249)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.createParameterizedType(RefactoringUtility.java:144)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:88)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1293)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:331)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4833)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:661)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Ant-Deckard)

Calling PDGExpressionGap#getReturnType() for the only expression gap in the following clone pair returns Null. Consequently, CloneInfoCSVWriter is throwing NPE.

Clone # 1 (Group 352, Pair 1-2): org.apache.tools.ant.filters.HeadFilter#initialize (row 673) and org.apache.tools.ant.filters.TailFilter#initialize (row 674)

java.lang.NullPointerException
    at ca.concordia.jdeodorant.eclipse.commandline.cloneinfowriter.CloneInfoCSVWriter.writeCloneInfo(CloneInfoCSVWriter.java:156)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:757)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

IllegalArgumentException (EMF-CloneDR)

Group 1294, Pair 1-3: org.eclipse.emf.edit.provider.ItemProvider#getElements (row 4755) and org.eclipse.emf.edit.provider.WrapperItemProvider#getElements (row 4757)

java.lang.IllegalArgumentException
    at org.eclipse.jdt.core.dom.rewrite.ListRewrite.insertLast(ListRewrite.java:249)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.createParameterizedType(RefactoringUtility.java:150)
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:91)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1080)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:340)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:5041)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

IndexOutOfBoundException (EMF-CCFinder)

Clone # 836 (Group 7272, Pair 1-2): org.eclipse.emf.ecore.resource.impl.BinaryResourceImpl#get (row 2937) and org.eclipse.emf.ecore.resource.impl.BinaryResourceImpl#get (row 2938)

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:491)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:336)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4974)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

MalformedTreeException (Columba-CCFinder)

The exception is thrown, but the analysis continues.

Clone # 315 (Group 3242, Pair 1-2): org.columba.mail.gui.message.command.OpenAttachmentCommand#execute (row 819) and org.columba.mail.gui.message.command.SaveAttachmentCommand#execute (row 820)

org.eclipse.text.edits.MalformedTreeException: Overlapping text edits
10:56:56.407 [main] INFO  c.c.j.e.commandline.Application - Started refactoring
10:56:56.407 [main] INFO  c.c.j.e.commandline.Application - Finished Refactoring
    at org.eclipse.text.edits.TextEdit$InsertionComparator.compare(TextEdit.java:119)
    at org.eclipse.text.edits.TextEdit$InsertionComparator.compare(TextEdit.java:1)
    at java.util.Collections.indexedBinarySearch(Collections.java:332)
    at java.util.Collections.binarySearch(Collections.java:320)
    at org.eclipse.text.edits.TextEdit.computeInsertionIndex(TextEdit.java:794)
    at org.eclipse.text.edits.TextEdit.internalAdd(TextEdit.java:779)
    at org.eclipse.text.edits.TextEdit.addChild(TextEdit.java:333)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.finalizeCloneExtraction(ExtractCloneRefactoring.java:2348)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:348)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4858)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Columba-Deckard)

Clone # 28 (Group 100, Pair 1-2): org.columba.mail.folder.command.CreateFilterOnMessageCommand#execute (row 62) and org.columba.mail.folder.command.CreateVFolderOnMessageCommand#execute (row 63)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoringGapHandler.createLambdaExpressionForBlockGap(ExtractCloneRefactoringGapHandler.java:592)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.modifySourceMethod(ExtractCloneRefactoring.java:4084)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:338)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4484)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JRuby-Deckard)

Clone # 140 (Group 159, Pair 2-3): org.jruby.ext.ffi.jffi.FastIntMethodFactory#createMethod (row 392) and org.jruby.ext.ffi.jffi.FastLongMethodFactory#createMethod (row 393)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.RefactoringUtility.generateTypeFromTypeBinding(RefactoringUtility.java:90)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1102)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:336)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4974)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Columba-CCFinder)

Clone # 347 (Group 3550, Pair 1-2): CSVAddressbookImporter#importAddressbook (row 896) and org.columba.addressbook.folder.importfilter.MozillaCSVAddressbookImporter#importAddressbook (row 897)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:557)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:333)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4858)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JEdit-NiCad Consistent)

Clone # 11 (Group 11, Pair 1-2): gnu.regexp.REFilterInputStream#read (row 22) and gnu.regexp.REFilterReader#read (row 23)

java.lang.NullPointerException
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.findReturnTypeBinding(PreconditionExaminer.java:3767)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.getReturnTypeBinding(PreconditionExaminer.java:3709)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.checkIfAllPossibleExecutionFlowsEndInReturn(PreconditionExaminer.java:1797)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.<init>(PreconditionExaminer.java:364)
    at gr.uom.java.ast.decomposition.cfg.mapping.PDGRegionSubTreeMapper.<init>(PDGRegionSubTreeMapper.java:40)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.getOptimalSolution(Application.java:1282)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:608)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Columba-Deckard)

Clone # 248 (Group 317, Pair 1-2): org.columba.mail.folder.command.AddMessageCommand#execute (row 646) and org.columba.mail.folder.command.ExpungeFolderCommand#execute (row 647)

java.lang.NullPointerException
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isExpressionUnderStatement(PreconditionExaminer.java:3155)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isExpressionUnderStatement(PreconditionExaminer.java:3158)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isExpressionUnderStatement(PreconditionExaminer.java:3158)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isExpressionUnderStatement(PreconditionExaminer.java:3158)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isExpressionUnderStatement(PreconditionExaminer.java:3158)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isParameterizableExpression(PreconditionExaminer.java:3015)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.checkPreconditions(PreconditionExaminer.java:2042)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.checkCloneStructureNodeForPreconditions(PreconditionExaminer.java:2016)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.checkCloneStructureNodeForPreconditions(PreconditionExaminer.java:2018)
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.<init>(PreconditionExaminer.java:323)
    at gr.uom.java.ast.decomposition.cfg.mapping.PDGRegionSubTreeMapper.<init>(PDGRegionSubTreeMapper.java:40)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.getOptimalSolution(Application.java:1151)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:643)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:184)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JRuby-NiCad Blind)

Clone #446 (Group 446, Pair 1-2): org.jruby.test.bench.BenchLongFibRecursive#boxedLongFib (row 1499) and org.jruby.test.bench.BenchIntFibRecursive#integerFib (row 1500)

 java.lang.NullPointerException
at gr.uom.java.ast.decomposition.matching.ASTNodeMatcher.commonSuperType(ASTNodeMatcher.java:479)
at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.findReturnTypeBinding(PreconditionExaminer.java:3774)
at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.getReturnTypeBinding(PreconditionExaminer.java:3709)
at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.checkIfAllPossibleExecutionFlowsEndInReturn(PreconditionExaminer.java:1797)
at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.<init>(PreconditionExaminer.java:364)
at gr.uom.java.ast.decomposition.cfg.mapping.PDGRegionSubTreeMapper.<init>(PDGRegionSubTreeMapper.java:40)
at ca.concordia.jdeodorant.eclipse.commandline.Application.getOptimalSolution(Application.java:1630)
at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:820)
at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:210)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-NiCad)

Clone # 173 (Group 173, Pair 60-116): org.eclipse.emf.ecore.change.impl.ResourceChangeImpl#getListChanges (row 467) and org.eclipse.emf.ecore.resource.impl.ResourceImpl#getContents (row 523)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1338)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:340)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:5031)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JRuby-CloneDR)

Clone # 520 (Group 521, Pair 1-2): org.jruby.compiler.ASTCompiler#compileMultipleAsgnAssignment (row 2553) and org.jruby.compiler.ASTCompiler19#compileMultipleAsgn19Assignment (row 2554)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.getFieldsAccessedInMethod(ExtractCloneRefactoring.java:1833)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:856)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:333)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4858)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Unexpected Exception

trying to refactor a this class I get "An unexpected exception occurred while creating a change object. See error log for more details."

in the error log:
Internal Error

Exception Stack Trace:

java.lang.reflect.InvocationTargetException
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:423)
    at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:2157)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2153)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizard.createChange(RefactoringWizard.java:663)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizard.computeUserInputSuccessorPage(RefactoringWizard.java:502)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizard.getStartingPage(RefactoringWizard.java:472)
    at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.createContents(RefactoringWizardDialog2.java:613)
    at org.eclipse.jface.window.Window.create(Window.java:435)
    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1101)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:178)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:202)
    at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:122)
    at gr.uom.java.jdeodorant.refactoring.views.TypeChecking$6.run(TypeChecking.java:599)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:519)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
    at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:462)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4454)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1388)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3799)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3409)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: java.lang.IllegalStateException: source not specified
    at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:807)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.modifyInheritanceHierarchy(ReplaceConditionalWithPolymorphism.java:271)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.apply(ReplaceConditionalWithPolymorphism.java:94)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.checkFinalConditions(ReplaceConditionalWithPolymorphism.java:973)
    at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:85)
    at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:121)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
    at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Root exception:
java.lang.IllegalStateException: source not specified
    at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:807)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.modifyInheritanceHierarchy(ReplaceConditionalWithPolymorphism.java:271)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.apply(ReplaceConditionalWithPolymorphism.java:94)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ReplaceConditionalWithPolymorphism.checkFinalConditions(ReplaceConditionalWithPolymorphism.java:973)
    at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:85)
    at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:121)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
    at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

Session Data:

eclipse.buildId=4.4.2.M20150204-1700
java.version=1.8.0_45
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=pl_PL
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os linux -ws gtk -arch x86 -product org.eclipse.epp.package.java.product

NPE (SQuirreLSQL-Deckard)

Clone # 205 (Group 254, Pair 1-2): net.sourceforge.squirrel_sql.plugins.dataimport.gui.ProgressBarDialog#getDialog (row 601) and net.sourceforge.squirrel_sql.plugins.dbcopy.gui.DualProgressBarDialog#getDialog (row 602)

java.lang.NullPointerException
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:917)
    at org.eclipse.jdt.core.dom.SingleVariableDeclaration.accept0(SingleVariableDeclaration.java:416)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visitList(ASTRewriteFlattener.java:181)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:757)
    at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:611)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visitList(ASTRewriteFlattener.java:181)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFlattener.visit(ASTRewriteFlattener.java:1116)
    at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:453)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteFormatter.getFormattedResult(ASTRewriteFormatter.java:179)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.doTextInsert(ASTRewriteAnalyzer.java:1357)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:647)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer$ListRewriter.rewriteList(ASTRewriteAnalyzer.java:802)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.rewriteParagraphList(ASTRewriteAnalyzer.java:1175)
    at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.visit(ASTRewriteAnalyzer.java:1692)
    at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:207)
    at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.internalRewriteAST(ASTRewrite.java:302)
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.rewriteAST(ASTRewrite.java:233)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.finalizeCloneExtraction(ExtractCloneRefactoring.java:2312)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:341)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4500)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JFreeChart-Deckard)

Clone # 461 (Group 575, Pair 1-2): org.jfree.chart.renderer.category.LineAndShapeRenderer#drawItem (row 1818) and org.jfree.chart.renderer.xy.XYLineAndShapeRenderer#drawSecondaryPass (row 1819)

java.lang.NullPointerException
    at org.eclipse.jdt.core.dom.rewrite.ASTRewrite.replace(ASTRewrite.java:438)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.replaceFieldAccessesOfParameterizedFields(ExtractCloneRefactoring.java:3597)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processASTNodeWithDifferences(ExtractCloneRefactoring.java:3437)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processCloneStructureNode(ExtractCloneRefactoring.java:2628)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processCloneStructureNode(ExtractCloneRefactoring.java:2751)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1237)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:340)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:5053)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (Ant-CCFinder)

Clone # 5 (Group 113, Pair 1-2): org.apache.tools.ant.taskdefs.optional.javacc.JJTree#execute (row 46) and org.apache.tools.ant.taskdefs.optional.javacc.JJDoc#execute (row 47)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.replaceExpression(ExtractCloneRefactoring.java:3697)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processASTNodeWithDifferences(ExtractCloneRefactoring.java:3322)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.processCloneStructureNode(ExtractCloneRefactoring.java:2582)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1160)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:327)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4484)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-Deckard)

Clone # 102 (Group 137, Pair 1-2): org.eclipse.emf.ecore.util.EcoreValidator#parseTypeParameterList (row 256) and org.eclipse.emf.ecore.util.EcoreValidator#parseTypeArgumentList (row 257)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1289)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:331)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4833)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NoSuchElementException (Hibernate-NiCad)

Clone # 321 (Group 321, Pair 1-4): org.hibernate.cache.jbc2.builder.MultiplexingCacheInstanceManager#releaseCaches (row 993) and org.hibernate.cache.jbc2.builder.MultiplexingCacheInstanceManager#releaseCaches (row 996)

java.util.NoSuchElementException
    at java.util.TreeMap.key(TreeMap.java:1327)
    at java.util.TreeMap.firstKey(TreeMap.java:290)
    at java.util.TreeSet.first(TreeSet.java:394)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.modifySourceMethod(ExtractCloneRefactoring.java:4148)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:338)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4500)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:626)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:180)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

IllegalArgumentException (EMF-CloneDR)

Clone # 339 (Group 339, Pair 1-2): org.eclipse.emf.common.util.BasicEList#getNonDuplicates (row 2253) and org.eclipse.emf.common.util.DelegatingEList#getNonDuplicates (row 2254)

java.lang.IllegalArgumentException: Invalid identifier : >IntermediateAbstractList<E><
    at org.eclipse.jdt.core.dom.SimpleName.setIdentifier(SimpleName.java:199)
    at org.eclipse.jdt.core.dom.AST.newSimpleName(AST.java:2202)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:633)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:336)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4974)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JRuby-NiCad Consistent)

Clone # 452 (Group 452, Pair 1-2): org.jruby.javasupport.JavaClass#addProxyExtender (row 1193) and org.jruby.RubyIO#addBlockingThread (row 1194)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.extractClone(ExtractCloneRefactoring.java:1355)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:336)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:5005)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-NiCad)

Clone # 690 (Group 690, Pair 57-226): org.eclipse.emf.edit.provider.ItemProviderAdapter#wrapValues (row 2426) and org.eclipse.emf.mapping.presentation.MappingEditor#hasDropDownEditor (row 2595)

java.lang.NullPointerException
    at ca.concordia.jdeodorant.eclipse.commandline.cloneinfowriter.CloneInfoCSVWriter.writeCloneInfo(CloneInfoCSVWriter.java:158)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:765)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (EMF-Deckard)

Clone # 157 (Group 210, Pair 1-2): org.eclipse.emf.ecore.xmi.impl.XMLString#addText (row 403) and org.eclipse.emf.ecore.xmi.impl.XMLString#addCDATA (row 404)

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.modifySourceMethod(ExtractCloneRefactoring.java:4685)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.apply(ExtractCloneRefactoring.java:345)
    at gr.uom.java.jdeodorant.refactoring.manipulators.ExtractCloneRefactoring.checkFinalConditions(ExtractCloneRefactoring.java:4893)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:669)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

NPE (JEdit-CCFinder)

Clone # 72 (Group 320, Pair 1-2): org.gjt.sp.jedit.options.ToolBarOptionPane#actionPerformed (row 290) and org.gjt.sp.jedit.options.ToolBarOptionPane#ToolBarEditDialog (row 291)

java.lang.NullPointerException
    at gr.uom.java.ast.decomposition.cfg.mapping.PreconditionExaminer.isTemplateMethodApplicable(PreconditionExaminer.java:3376)
    at gr.uom.java.ast.decomposition.cfg.mapping.DivideAndConquerMatcher.isTemplateMethodApplicable(DivideAndConquerMatcher.java:274)
    at ca.concordia.jdeodorant.eclipse.commandline.cloneinfowriter.CloneInfoCSVWriter.writeCloneInfo(CloneInfoCSVWriter.java:105)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.testRefactoring(Application.java:765)
    at ca.concordia.jdeodorant.eclipse.commandline.Application.start(Application.java:185)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.