{"action":"closed","issue":{"url":"https://api.github.com/repos/philglover/pitclipse/issues/58","labels_url":"https://api.github.com/repos/philglover/pitclipse/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/philglover/pitclipse/issues/58/comments","events_url":"https://api.github.com/repos/philglover/pitclipse/issues/58/events","html_url":"https://github.com/philglover/pitclipse/issues/58","id":77590579,"number":58,"title":"NPE","user":{"login":"Bananeweizen","id":406876,"avatar_url":"https://avatars.githubusercontent.com/u/406876?v=3","gravatar_id":"","url":"https://api.github.com/users/Bananeweizen","html_url":"https://github.com/Bananeweizen","followers_url":"https://api.github.com/users/Bananeweizen/followers","following_url":"https://api.github.com/users/Bananeweizen/following{/other_user}","gists_url":"https://api.github.com/users/Bananeweizen/gists{/gist_id}","starred_url":"https://api.github.com/users/Bananeweizen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bananeweizen/subscriptions","organizations_url":"https://api.github.com/users/Bananeweizen/orgs","repos_url":"https://api.github.com/users/Bananeweizen/repos","events_url":"https://api.github.com/users/Bananeweizen/events{/privacy}","received_events_url":"https://api.github.com/users/Bananeweizen/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-18T09:57:55Z","updated_at":"2015-06-15T09:54:58Z","closed_at":"2015-06-15T09:54:58Z","body":"I have one plugin project in a large Eclipse workspace, where the PIT launch config throws an NPE, independent of whether I try running it on a test, package, source folder or what else. It works fine for other similar projects in the same workspace.\r\nThere are no related entries in the error log view or workspace log file. Anything I could check, enable more logging/tracing to see what caused the exception?\r\n\r\nThe only thing that I think might be important: This is an Eclipse test fragment, so the classes to be tested are in another Eclipse plugin project. Nevertheless, that same setup works for other similar tests.\r\n\r\n```\r\nConnecting to: localhost/127.0.0.1:51871\r\nConnected\r\nReceived request: PitRequest [options=PitOptions [reportDir=D:\\development\\CODER\\workspace\\.metadata\\.plugins\\org.pitest.pitclipse.core\\html_results, classUnderTest=com.etas.esdl.concurrent.utils.FromByteStreamTest, classesToMutate=[], sourceDirs=[D:\\development\\CODER\\git\\project33\\tests\\com.etas.esdl.concurrent.tests\\src\\test\\java], packages=[], threads=8, historyLocation=null, excludedClasses=[], excludedMethods=[], avoidCallsTo=[java.util.logging, org.apache.log4j, org.slf4j, org.apache.commons.logging], mutators=[DEFAULTS], timeoutConst=3000, timeoutFactor=1.25], projects=[com.etas.esdl.concurrent.tests]]\r\nOption (* = required)                   Description                            \r\n---------------------                   -----------                            \r\n-?, -h                                  show help                              \r\n--avoidCallsTo <comma separated list                                           \r\n  of packages to consider as                                                   \r\n  untouchable logging calls>                                                   \r\n--classPath <coma separated list of                                            \r\n  additional classpath elements>                                               \r\n--configFile <The name of the config                                           \r\n  file to use.>                                                                \r\n--coverageThreshold <Integer: Line      (default: 0)                           \r\n  coverage below which to throw an                                             \r\n  error>                                                                       \r\n--dependencyDistance <Integer: maximum  (default: -1)                          \r\n  distance to look from test for                                               \r\n  covered classes>                                                             \r\n--detectInlinedCode [Boolean: whether   (default: true)                        \r\n  or not to try and detect code                                                \r\n  inlined from finally blocks]                                                 \r\n--excludedClasses <comma separated                                             \r\n  list of globs for classes to exclude                                         \r\n  when looking for both mutation                                               \r\n  target and tests>                                                            \r\n--excludedGroups <TestNG groups/JUnit                                          \r\n  categories to include>                                                       \r\n--excludedMethods <comma separated                                             \r\n  list of filters to match against                                             \r\n  methods to exclude from mutation                                             \r\n  analysis>                                                                    \r\n--exportLineCoverage [Boolean: whether  (default: true)                        \r\n  or not to dump per test line                                                 \r\n  coverage data to disk]                                                       \r\n--failWhenNoMutations [Boolean:         (default: true)                        \r\n  whether to throw error if no                                                 \r\n  mutations found]                                                             \r\n--historyInputLocation <File: File to                                          \r\n  read history from for incremental                                            \r\n  analysis>                                                                    \r\n--historyOutputLocation <File: File to                                         \r\n  write history to for incremental                                             \r\n  analysis>                                                                    \r\n--includeLaunchClasspath [Boolean:      (default: true)                        \r\n  whether or not to analyse launch                                             \r\n  classpath]                                                                   \r\n--includedGroups <TestNG groups/JUnit                                          \r\n  categories to include>                                                       \r\n--jvmArgs <comma separated list of                                             \r\n  child JVM args>                                                              \r\n--jvmPath <path to java executable>                                            \r\n--maxMutationsPerClass <Integer: max    (default: 0)                           \r\n  number of mutations to allow for                                             \r\n  each class>                                                                  \r\n--mutableCodePaths <Globs identifying                                          \r\n  classpath roots containing mutable                                           \r\n  code>                                                                        \r\n--mutateStaticInits [Boolean: whether   (default: true)                        \r\n  or not to generate mutations in                                              \r\n  static initializers]                                                         \r\n--mutationEngine <mutation engine to    (default: gregor)                      \r\n  use>                                                                         \r\n--mutationThreshold <Integer: Mutation  (default: 0)                           \r\n  score below which to throw an error>                                         \r\n--mutationUnitSize <Integer: Maximum    (default: 0)                           \r\n  number of mutations to include                                               \r\n  within a single unit of analysis>                                            \r\n--mutators <comma separated list of                                            \r\n  mutation operators>                                                          \r\n--outputFormats <comma separated list   (default: HTML)                        \r\n  of listeners to receive mutation                                             \r\n  results>                                                                     \r\n* --reportDir <directory to create                                             \r\n  report folder in>                                                            \r\n* --sourceDirs <File: comma separated                                          \r\n  list of source directories>                                                  \r\n* --targetClasses <comma separated                                             \r\n  list of filters to match against                                             \r\n  classes to test>                                                             \r\n--targetTests <comma separated list of                                         \r\n  filters to match against tests to                                            \r\n  run>                                                                         \r\n--threads <Integer: number of threads   (default: 1)                           \r\n  to use for testing>                                                          \r\n--timeoutConst [Long: constant to       (default: 4000)                        \r\n  apply to calculate maximum test                                              \r\n  duration]                                                                    \r\n--timeoutFactor [Float: factor to       (default: 1.25)                        \r\n  apply to calculate maximum test                                              \r\n  duration]                                                                    \r\n--timestampedReports [Boolean: whether  (default: true)                        \r\n  or not to generated timestamped                                              \r\n  directories]                                                                 \r\n--verbose [Boolean: whether or not to   (default: true)                        \r\n  generate verbose output]                                                     \r\n>>>> Missing required option ['targetClasses']\r\nClosing server\r\nClosed\r\nException in thread \"main\" java.lang.NullPointerException\r\n\tat org.pitest.pitclipse.pitrunner.PitResults$Builder.checkFileExists(PitResults.java:55)\r\n\tat org.pitest.pitclipse.pitrunner.PitResults$Builder.withHtmlResults(PitResults.java:49)\r\n\tat org.pitest.pitclipse.pitrunner.PitRunner.runPIT(PitRunner.java:54)\r\n\tat org.pitest.pitclipse.pitrunner.PitRunner.main(PitRunner.java:28)\r\n```"}}