brew doctor fails with java cask error

Created on 17 Sep 2020  路  9Comments  路  Source: Homebrew/brew

Bug report

Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.

  • [X ] ran brew update and can still reproduce the problem?
  • [X ] ran brew doctor, fixed all issues and can still reproduce the problem?
  • [X ] ran brew config and brew doctor and included their output with your issue?

What you were trying to do (and why)

Run brew bundle --global to sync my homebrew

What happened (include command output)

Most of it works fine, but at the end of the run I get this:

Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fed782eaa50>
Homebrew Bundle complete! 145 Brewfile dependencies now installed.
That in and of itself would be weird, since I don't have a cask reference to `java` in that brewfile, but it's weirder:
Command output
$ brew doctor --verbose
Error: Cask 'java' is unreadable: undefined method `undent' for #

$ brew config
HOMEBREW_VERSION: 2.5.1-57-g4393df8-dirty
ORIGIN: https://github.com/Homebrew/brew
HEAD: 4393df824e6db8320f27846f2b28e1e27522f037
Last commit: 18 minutes ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: ddc3eb64b22162c41f83bf0561e7652d3884d4ed
Core tap last commit: 30 minutes ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: emacsclient
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 9
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: 16-core 64-bit kabylake
Clang: 11.0 build 1103
Git: 2.28.0 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
Java: 11.0.8, 1.8.0_265
macOS: 10.15.6-x86_64
CLT: N/A
Xcode: 11.7

$ brew doctor --verbose
Error: Cask 'java' is unreadable: undefined method `undent' for #
  
## What you expected to happen brew doctor should have worked :) ## Step-by-step reproduction instructions (by running `brew` commands) I can repro it by running `brew doctor`. Odds are good that you won't be able to, so I would love to know how to get a better debug output so I can send you a stack trace, or delete the random broken think that I clearly have somewhere on this computer. ## Output of `brew config` and `brew doctor` commands
$ brew config
HOMEBREW_VERSION: 2.5.1-57-g4393df8-dirty
ORIGIN: https://github.com/Homebrew/brew
HEAD: 4393df824e6db8320f27846f2b28e1e27522f037
Last commit: 18 minutes ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: ddc3eb64b22162c41f83bf0561e7652d3884d4ed
Core tap last commit: 30 minutes ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: emacsclient
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 9
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: 16-core 64-bit kabylake
Clang: 11.0 build 1103
Git: 2.28.0 => /usr/local/bin/git
Curl: 7.64.1 => /usr/bin/curl
Java: 11.0.8, 1.8.0_265
macOS: 10.15.6-x86_64
CLT: N/A
Xcode: 11.7

$ brew doctor --verbose
Error: Cask 'java' is unreadable: undefined method `undent' for #

For what it's worth, I've tried to find a java cask too, or anything with undent called in my Homebrew cellar:

$ rg undent /usr/local/Homebrew
/usr/local/Homebrew/Library/Homebrew/rubocops/cask/extend/string.rb
5:  def undent

/usr/local/Homebrew/Library/Homebrew/test/rubocops/cask/homepage_matches_url_spec.rb
13:      <<-CASK.undent
27:      <<-CASK.undent
42:      <<-CASK.undent
58:      <<-CASK.undent
73:      <<-CASK.undent
101:        <<-CASK.undent
128:        <<-CASK.undent
142:        <<-CASK.undent
156:        <<-CASK.undent
180:        <<-CASK.undent
206:      <<-CASK.undent

/usr/local/Homebrew/Library/Homebrew/test/rubocops/cask/homepage_url_trailing_slash_spec.rb
13:      <<-CASK.undent
25:      <<-CASK.undent
37:      <<-CASK.undent
44:      <<-CASK.undent

/usr/local/Homebrew/Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb
20:      <<-CASK.undent
32:      <<-CASK.undent
45:      <<-CASK.undent
54:      <<-CASK.undent
78:      <<-CASK.undent
95:      <<-CASK.undent
146:      format(<<-CASK.undent, caveats: caveats.strip)
158:      format(<<-CASK.undent, caveats: caveats.strip)
181:        <<-CAVEATS.undent
182:          caveats <<-EOS.undent
195:        <<-CAVEATS.undent
210:      <<-CASK.undent
224:      <<-CASK.undent
246:      <<-CASK.undent
263:      <<-CASK.undent
289:      <<-CASK.undent

/usr/local/Homebrew/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb
13:      <<-CASK.undent
25:      <<-CASK.undent
38:      <<-CASK.undent
46:      <<-CASK.undent
76:      <<-CASK.undent
88:      <<-CASK.undent
135:      <<-CASK.undent
148:      <<-CASK.undent
168:      <<-CASK.undent
182:      <<-CASK.undent
201:      format(<<-CASK.undent, caveats: caveats.strip)
213:      format(<<-CASK.undent, caveats: caveats.strip)
233:        <<-CAVEATS.undent
234:          caveats <<-EOS.undent
247:        <<-CAVEATS.undent
262:      <<-CASK.undent
276:      <<-CASK.undent
296:      <<-CASK.undent

Most helpful comment

Yep. Removing that file cleaned up the situation. I haven't closed this in case the homebrew folks need anything from me to investigate (and I assume they consider this a bug)

All 9 comments

Can you see if brew update-reset fixes this for you?

It did not:

 brew update-reset
==> Fetching /usr/local/Homebrew...
remote: Enumerating objects: 183, done.
remote: Counting objects: 100% (122/122), done.
remote: Compressing objects: 100% (33/33), done.
remote: Total 48 (delta 37), reused 19 (delta 13), pack-reused 0
Unpacking objects: 100% (48/48), 9.99 KiB | 330.00 KiB/s, done.
From https://github.com/Homebrew/brew
 * [new branch]          dependabot/bundler/Library/Homebrew/rubocop-ast-0.4.1 -> origin/dependabot/bundler/Library/Homebrew/rubocop-ast-0.4.1
 * [new branch]          dependabot/bundler/Library/Homebrew/sorbet-0.5.5912   -> origin/dependabot/bundler/Library/Homebrew/sorbet-0.5.5912
 * [new branch]          imgbot                                                -> origin/imgbot
   4393df824..01e522931  master                                                -> origin/master

==> Resetting /usr/local/Homebrew...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'

==> Fetching /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask...

==> Resetting /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/cjbassi/homebrew-gotop...

==> Resetting /usr/local/Homebrew/Library/Taps/cjbassi/homebrew-gotop...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/d12frosted/homebrew-emacs-plus...

==> Resetting /usr/local/Homebrew/Library/Taps/d12frosted/homebrew-emacs-plus...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/daviderestivo/homebrew-emacs-head...
From https://github.com/daviderestivo/homebrew-emacs-head
   21d5d22..4db405b  dev                 -> origin/dev
 * [new branch]      feature/native-comp -> origin/feature/native-comp

==> Resetting /usr/local/Homebrew/Library/Taps/daviderestivo/homebrew-emacs-head...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/heroku/homebrew-brew...

==> Resetting /usr/local/Homebrew/Library/Taps/heroku/homebrew-brew...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle...

==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...

==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions...

==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...

==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...

==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/jez/homebrew-formulae...

==> Resetting /usr/local/Homebrew/Library/Taps/jez/homebrew-formulae...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/stripe/homebrew-stripe-cli...

==> Resetting /usr/local/Homebrew/Library/Taps/stripe/homebrew-stripe-cli...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

==> Fetching /usr/local/Homebrew/Library/Taps/twpayne/homebrew-taps...
remote: Repository not found.
fatal: repository 'https://github.com/twpayne/homebrew-taps/' not found
remote: Repository not found.
fatal: repository 'https://github.com/twpayne/homebrew-taps/' not found

==> Resetting /usr/local/Homebrew/Library/Taps/twpayne/homebrew-taps...
Branch 'master' set up to track remote branch 'master' from 'origin'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.

$ brew doctor --verbose
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fcef4a84d08>

How about:

find -name java.rb /usr/local/Homebrew/Library/Taps

Comes up empty (find -L /usr/local/Homebrew/Library/Taps -name java.rb specifically, to follow any symlinks if present)

If I expand to a java wildcard, I get this, but I think they're not related:

$ find -L /usr/local/Homebrew/Library/Taps -name 'java*.rb'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/java-beta.rb
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/java6.rb
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/javacc.rb
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/javarepl.rb

Probably caused by the saved cask file in $(brew --caskroom)/java/.metadata.

Holy carp, that's it!

I ... I have no idea whatsoever how I would debug this in practice. I've literally never seen that path turn up in any log anywhere.

@offbyone Did you solve the problem? I have exactly same issue and "$(brew --caskroom)/java/.metadata." exist

Update: I deleted "$(brew --caskroom)/java/" it's working now

Yep. Removing that file cleaned up the situation. I haven't closed this in case the homebrew folks need anything from me to investigate (and I assume they consider this a bug)

Assuming this is a known issue on Cask side so closing, thanks all!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hktalent picture hktalent  路  4Comments

paanvaannd picture paanvaannd  路  4Comments

Rotonen picture Rotonen  路  4Comments

rtobrien picture rtobrien  路  3Comments

kirk86 picture kirk86  路  3Comments