Subject: bug#28926: 26.0.90; java-mode hangs on "<"

From: Noam Postavsky <[email-masked]>
Date: Sat, 21 Oct 2017 16:41:14 -0400

tags 28926 + confirmed
quit

detlevvandaele <[email-masked]> writes:

> Hello,
>
> recently I've been trying to get a decent java environment set-up for
> emacs, and I've noticed that whenever I open a java buffer and type
> "<" for the first time, the emacs process hangs indefinitely.
>
> Quitting out with C-g then inserts the character, and no further issues
> arise so long as the buffer is not reverted (meaning I can then insert
> as many "<" as I want without hanging).
> Reverting the buffer or opening a new java buffer re-introduces the issue.
>
> I can personally reproduce this bug on both my macbook pro running macOS High
> Sierra and my Arch Linux machine with emacs version 26.0.90.
> The bug does not seem to occur on emacs 25.3.2 on either OS.
>
> Steps to reproduce:
> 1. Start emacs -Q
> 2. Open an arbitrary java file (e.g. test.java)
> 3. Type an opening "<"
>
> Alternatively:
> 1. Start emacs -Q
> 2. Open up the *scratch* buffer
> 3. Activate java-mode (M-x java-mode)
> 4. Type an opening "<"
>
> Perceived result: emacs hangs indefinitely until the current command is quit.
> Expected result: immediate insertion of the "<" character without freezing/hanging.

Here's a backtrace using debug-on-quit:

Debugger entered--Lisp error: (quit)
  c-forward-<>-arglist-recur(nil)
  c-forward-<>-arglist(nil)
  c-restore-<>-properties(146 147 0)
  #f(compiled-function (fn) #<bytecode 0xeb4015>)(c-restore-<>-properties)
  mapc(#f(compiled-function (fn) #<bytecode 0xeb4015>) (c-depropertize-new-text c-parse-quotes-after-change c-restore-<>-properties c-change-expand-fl-region))
  c-after-change(146 147 0)
  self-insert-command(1)
  funcall-interactively(self-insert-command 1)
  call-interactively(self-insert-command nil nil)
  command-execute(self-insert-command)