Skip to content
This repository has been archived by the owner on Dec 13, 2020. It is now read-only.

Failed to parse RuboCop output on RubyMine 8 #30

Closed
akifateef opened this issue Dec 17, 2015 · 4 comments
Closed

Failed to parse RuboCop output on RubyMine 8 #30

akifateef opened this issue Dec 17, 2015 · 4 comments

Comments

@akifateef
Copy link

I have installed the rubocop gem, also added it in the gemfile and the version is 0.35.1 but still rubymine reports, failed to parse rubocop output.

Please guide me if I am doing it wrong.

Below is the log from my system related to rubocop.

2015-12-17 12:54:05,918 [   2439]   INFO - llij.ide.plugins.PluginManager - Loaded bundled plugins: CSS Support (143.SNAPSHOT), CVS Integration (11), CoffeeScript (2.0), Database Tools and SQL (1.0), EditorConfig (1.0), Gherkin (999.999), Git Integration (8.1), GitHub (143.382.37), HAML (143.SNAPSHOT), HTML Tools (2.0), IDEA CORE (143.SNAPSHOT), IntelliLang (8.0), JavaScript Debugger (1.0), JavaScript Intention Power Pack (0.9.4), JavaScript Support (1.0), LESS support (143.SNAPSHOT), Perforce Integration (2.0), Puppet Support (VERSION), REST Client (143.SNAPSHOT), Remote Hosts Access (0.1), Ruby CSS Support Integration (143.SNAPSHOT), Ruby Code Coverage (143.SNAPSHOT), Ruby Cucumber support (143.SNAPSHOT), Ruby Database Support Integration (143.SNAPSHOT), Ruby HAML Support Integration (143.SNAPSHOT), Ruby JavaScript Debugger Integration (143.SNAPSHOT), Ruby Remote SDK Support (0.1), Ruby Slim Support Integration (143.SNAPSHOT), Ruby UML Support Integration (143.SNAPSHOT), RubyMotion support (143.SNAPSHOT), SASS support (143.SNAPSHOT), SSH Remote Run (0.1), Slim (VERSION), Stylus support (999.999), Subversion Integration (1.1), Task Management (1.0), Terminal (0.1), TextMate bundles support (VERSION), UML Support (1.0), Vagrant (0.6.VERSION), hg4idea (10.0) 
2015-12-17 12:54:05,918 [   2439]   INFO - llij.ide.plugins.PluginManager - Loaded custom plugins: BashSupport (1.5.2.143), Markdown (0.9.7), Markdown support (8.0.0.20151106), MultiMarkdown (1.2.2), RuboCop (3.0.1) 


...


2015-12-17 12:54:23,930 [  20451]  DEBUG - hub.sirlantis.rubymine.rubocop - Executing RuboCop (SDK=/home/akif/.rvm/rubies/jruby-1.7.13/bin, Bundler=true)/home/akif/.rvm/gems/jruby-1.7.13/gems/bundler-1.10.6/bin/bundle --1.9 exec rubocop --format json /home/akif/t/g/db/migrate/20151217072040_add_error_msg_to_logged_sms.rb


...


2015-12-17 12:54:37,239 [  33760]   WARN - hub.sirlantis.rubymine.rubocop - Failed to parse RuboCop output 
com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
    at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1573)
    at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1423)
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:587)
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:381)
    at io.github.sirlantis.rubymine.rubocop.model.RubocopResult$Companion.readFromJsonReader(RubocopResult.kt:24)
    at io.github.sirlantis.rubymine.rubocop.model.RubocopResult$Companion.readFromReader(RubocopResult.kt:18)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.parseProcessOutput(RubocopTask.kt:83)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.runViaCommandLine(RubocopTask.kt:190)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.run(RubocopTask.kt:60)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:157)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:24)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.f(ExternalToolPass.java:184)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.access$500(ExternalToolPass.java:46)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:126)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:298)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:295)
    at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
    at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:365)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
2015-12-17 12:54:37,241 [  33762]   WARN - hub.sirlantis.rubymine.rubocop - Couldn't reset stream 
java.io.IOException: Resetting to invalid mark
    at java.io.BufferedInputStream.reset(BufferedInputStream.java:437)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.readStreamToString(RubocopTask.kt:143)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.logParseFailure(RubocopTask.kt:114)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.parseProcessOutput(RubocopTask.kt:86)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.runViaCommandLine(RubocopTask.kt:190)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.run(RubocopTask.kt:60)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:157)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:24)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.f(ExternalToolPass.java:184)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.access$500(ExternalToolPass.java:46)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:126)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:298)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:295)
    at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
    at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:365)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
2015-12-17 12:54:37,242 [  33763]   WARN - hub.sirlantis.rubymine.rubocop - Couldn't reset stream 
java.io.IOException: Resetting to invalid mark
    at java.io.BufferedInputStream.reset(BufferedInputStream.java:437)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.readStreamToString(RubocopTask.kt:143)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.logParseFailure(RubocopTask.kt:115)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.parseProcessOutput(RubocopTask.kt:86)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.runViaCommandLine(RubocopTask.kt:190)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.run(RubocopTask.kt:60)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:157)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:24)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.f(ExternalToolPass.java:184)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.access$500(ExternalToolPass.java:46)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:126)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:298)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:295)
    at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
    at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:365)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
2015-12-17 12:54:37,243 [  33764]   WARN - hub.sirlantis.rubymine.rubocop - === RuboCop STDOUT START ===

=== RuboCop STDOUT END === 
2015-12-17 12:54:37,243 [  33764]   WARN - hub.sirlantis.rubymine.rubocop - === RuboCop STDERR START ===

=== RuboCop STDERR END === 
2015-12-17 12:54:37,244 [  33765]   INFO - notification.NotificationGroup - Notification group RuboCop Errors is already registered 
java.lang.Throwable
    at com.intellij.notification.NotificationGroup.<init>(NotificationGroup.java:52)
    at com.intellij.notification.NotificationGroup.<init>(NotificationGroup.java:39)
    at io.github.sirlantis.rubymine.rubocop.utils.NotifyUtil.<clinit>(NotifyUtil.kt:19)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.logParseFailure(RubocopTask.kt:137)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.parseProcessOutput(RubocopTask.kt:86)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.runViaCommandLine(RubocopTask.kt:190)
    at io.github.sirlantis.rubymine.rubocop.RubocopTask.run(RubocopTask.kt:60)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:157)
    at io.github.sirlantis.rubymine.rubocop.RubocopAnnotator.doAnnotate(RubocopAnnotator.kt:24)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.f(ExternalToolPass.java:184)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass.access$500(ExternalToolPass.java:46)
    at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:126)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
    at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
    at com.intellij.util.ui.update.MergingUpdateQueue$3.run(MergingUpdateQueue.java:271)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:286)
    at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:244)
    at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:234)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.Alarm$Request$1.run(Alarm.java:352)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:298)
    at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:295)
    at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
    at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
    at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
    at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:365)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
2015-12-17 12:54:37,276 [  33797]   INFO - hub.sirlantis.rubymine.rubocop - RuboCop exited with 15 
2015-12-17 12:54:37,279 [  33800]  DEBUG - hub.sirlantis.rubymine.rubocop - Executing RuboCop (SDK=/home/akif/.rvm/rubies/jruby-1.7.13/bin, Bundler=true)/home/akif/.rvm/gems/jruby-1.7.13/gems/bundler-1.10.6/bin/bundle --1.9 exec rubocop --format json /home/akif/t/g/db/migrate/20151217072040_add_error_msg_to_logged_sms.rb 
2015-12-17 12:54:37,279 [  33800]   INFO - .ruby.ruby.run.RubyCommandLine - Executing [/home/akif/.rvm/gems/jruby-1.7.13/gems/bundler-1.10.6/bin/bundle --1.9 exec rubocop --format json /home/akif/t/g/db/migrate/20151217072040_add_error_msg_to_logged_sms.rb], working dir =[/home/akif/t/g] 
2015-12-17 12:54:46,058 [  42579]   WARN - hub.sirlantis.rubymine.rubocop - Failed to parse RuboCop output 
@ikappas
Copy link

ikappas commented Dec 24, 2015

I am also getting this error on Rubymine 8.0.3 (mac) on each and evey .rb file I open:

Failed to parse RuboCop output: Please make sure that:you added gem 'rubocop' to your Gemfileyou did run bundle install successfullyyour RuboCop version isn't ancient (show balloon)

In my Gemfile I have:

source 'https://rubygems.org'

# Specify your gem's dependencies in composer.gemspec
gemspec

In my project.gemspec file I have:

Gem::Specification.new do |spec|

...

spec.add_development_dependency 'rubocop', '~> 0.35', '>= 0.35.0'
end

and I can verify that rubocop 0.35.1 is installed and running under console.

I am running ruby 2.1.7 using rvm

@ikappas
Copy link

ikappas commented Dec 24, 2015

After inspecting the idea.log file I can see that rubocop is executed with the following command:

/Users/[username]/.rbenv/shims/ruby exec rubocop --format json [path to project]/test.rb

where ruby path is the absolute path under my user folder (Verified to be OK)
the test.rb path is the absolute path to the project file (Verified to be OK)

This command when executed in terminal from the root of the project produces the following error:

path/to/project/root $ /Users/[username]/.rbenv/shims/ruby exec rubocop --format json [path to project]/test.rb
ruby: No such file or directory -- exec (LoadError)

The same command without the 'ruby exec' produces the right output:

path/to/project/root $ rubocop --format json [path to project]/test.rb

{"metadata":{"rubocop_version":"0.35.1","ruby_engine":"ruby","ruby_version":"2.1.7","ruby_patchlevel":"400","ruby_platform":"x86_64-darwin15.0"},"files":[{"path":"test.rb","offenses":[]}],"summary":{"offense_count":0,"target_file_count":1,"inspected_file_count":1}}

@mrcljx
Copy link
Owner

mrcljx commented Dec 24, 2015

@ikappas Yeah, that should be bundler exec... probably the Bundler preprocessor of RubyMine does something weird here.

@mrcljx
Copy link
Owner

mrcljx commented Dec 25, 2015

Hi everyone, I just pushed 3.1.0 to JetBrains plugin registry which delegates everything to RubyMine's internal handling of Gems/Bundler/RVM/rbenv (found some new APIs in RubyMine 8 which weren't there before). Please create a new issue if the problem persists.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants