Enables applying and inspecting bugs in java projects.
- Git (1.7.x or newer)
- Python 2.7
If you have downloaded the source code:
python setup.py install
To run the the tests, simply run:
python Test.py
Applying bugs:
The project you want to extract bugs from must be a Java project written in Maven framework, and must have #Bugs-database generated by running BugMiner on the project. Applier search for this DB in C:\BugsDB.
Example on apache\tika project:
C:\Users\user\Code\Python\BugApplier>python2
Python 2.7.15 |Anaconda, Inc.| (default, May 1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from Applier import Applier
>>> applier = Applier('https://github.com/apache/tika','C:/Users/user/Code/tests/applier_example')
>>> bugs = applier.get_bugs('TIKA-56','b12c01d9b56053554cec501aab0530f7f4352daf')
>>> print(len(bugs))
1
>>> print(bugs[0])
type: Delta ,issue: TIKA-56 ,commit: b12c01d9b56053554cec501aab0530f7f4352daf ,parent: 9477c5e4a38dbacf794b663c757617a8ee07432a ,test: org.apache.tika.mime.TestMimeTypes#testCaseSensitivity description:
>>> applier.apply(bugs[0])
>>> import os
>>> os.system('mvn test -f C:\\Users\\user\\Code\\tests\\applier_example\\tika')
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.apache.tika:tika:jar:0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 224, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 232, column 17
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------< org.apache.tika:tika >------------------------
[INFO] Building Apache Tika 0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tika ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources to org/apache/tika
[INFO]
[INFO] --- maven-antrun-plugin:1.3:run (add-project-files) @ tika ---
[INFO] Executing tasks
[copy] Copying 3 files to C:\Users\user\Code\tests\applier_example\tika\target\classes\META-INF
[INFO] Executed tasks
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tika ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 55 source files to C:\Users\user\Code\tests\applier_example\tika\target\classes
[WARNING] /C:/Users/user/Code/tests/applier_example/tika/src/main/java/org/apache/tika/parser/opendocument/OpenOfficeParser.java: Some input files use unchecked or unsafe operations.
[WARNING] /C:/Users/user/Code/tests/applier_example/tika/src/main/java/org/apache/tika/parser/opendocument/OpenOfficeParser.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tika ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 11 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tika ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 10 source files to C:\Users\user\Code\tests\applier_example\tika\target\test-classes
[WARNING] /C:/Users/user/Code/tests/applier_example/tika/src/test/java/org/apache/tika/TestParsers.java: C:\Users\user\Code\tests\applier_example\tika\src\test\java\org\apache\tika\TestParsers.java uses unchecked or unsafe operations.
[WARNING] /C:/Users/user/Code/tests/applier_example/tika/src/test/java/org/apache/tika/TestParsers.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ tika ---
[INFO] Surefire report directory: C:\Users\user\Code\tests\applier_example\tika\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.tika.metadata.TestMetadata
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.097 sec
Running org.apache.tika.metadata.TestSpellCheckedMetadata
10000 spellchecked metadata I/O time:3639ms.
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.559 sec
Running org.apache.tika.mime.TestMimeTypes
Oct 13, 2018 1:29:18 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.229 sec <<< FAILURE!
testCaseSensitivity(org.apache.tika.mime.TestMimeTypes) Time elapsed: 0.014 sec <<< FAILURE!
junit.framework.AssertionFailedError: expected:<application/pdf -- null
Aliases:
application/x-pdf
Patterns:
*.pdf
Magics:
[50/(FALSE OR [0:0(string)-null#160260441645])]
> but was:<application/octet-stream -- null
Aliases: NONE
Patterns:
*.bin
Magics:
[50/(((((FALSE OR [0:0(string)-null#7966]) OR [0:0(host16)-null#7967]) OR [0:0(host16)-null#8191]) OR [0:0(string)-null#-225]) OR [0:0(host16)-null#-13563])]
>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:282)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:71)
at org.apache.tika.mime.TestMimeTypes.testCaseSensitivity(TestMimeTypes.java:47)
Running org.apache.tika.mime.TestMimeUtils
Oct 13, 2018 1:29:18 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
Oct 13, 2018 1:29:18 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.102 sec
Running org.apache.tika.parser.microsoft.ExcelParserTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.111 sec
Running org.apache.tika.parser.microsoft.PowerPointParserTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 sec
Running org.apache.tika.parser.microsoft.WordParserTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 sec
Running org.apache.tika.parser.txt.TXTParserTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.037 sec
Running org.apache.tika.TestParsers
Oct 13, 2018 1:29:20 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.opendocument.OpenOfficeParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.opendocument.OpenOfficeParser
Oct 13, 2018 1:29:20 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.html.HtmlParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.html.HtmlParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.html.HtmlParser
Oct 13, 2018 1:29:20 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.pdf.PDFParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.pdf.PDFParser
Oct 13, 2018 1:29:23 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.pdf.PDFParser
Oct 13, 2018 1:29:23 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.ExcelParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.ExcelParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.ExcelParser
Oct 13, 2018 1:29:23 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.txt.TXTParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.txt.TXTParser
Oct 13, 2018 1:29:24 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.xml.XMLParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.xml.XMLParser
Oct 13, 2018 1:29:24 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.rtf.RTFParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.rtf.RTFParser
Oct 13, 2018 1:29:24 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.PowerPointParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.PowerPointParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.PowerPointParser
Oct 13, 2018 1:29:25 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.ExcelParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.html.HtmlParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.opendocument.OpenOfficeParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.pdf.PDFParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.PowerPointParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.rtf.RTFParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.txt.TXTParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.WordParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.xml.XMLParser
Oct 13, 2018 1:29:25 PM org.apache.tika.mime.MimeUtils load
INFO: Loading [org/apache/tika/mime/tika-mimetypes.xml]
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.WordParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.WordParser
INFO [main] (ParserFactory.java:40) - Loading parser class = org.apache.tika.parser.microsoft.WordParser
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.04 sec
Running org.apache.tika.TestRereadableInputStream
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec
Results :
Failed tests: testCaseSensitivity(org.apache.tika.mime.TestMimeTypes): expected:<application/pdf -- null(..)
Tests run: 40, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2018-10-13T13:29:26+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project tika: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Users\user\Code\tests\applier_example\tika\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
1