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

From: detlevvandaele <[email-masked]>
Date: Sat, 21 Oct 2017 18:51:27 +0200

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.

In GNU Emacs 26.0.90 (build 2, x86_64-apple-darwin17.0.0, NS appkit-1561.00 Version 10.13 (Build 17A405))
of 2017-10-13 built on Detlevs-MBP.kelder.zeus.ugent.be
Repository revision: 716b84034d10b8cae5d721173108c4c299f66ed0
Windowing system distributor 'Apple', version 10.3.1561

Configured using:
'configure --with-ns --with-gnutls --with-mailutils --with-modules
--with-dbus --with-imagemagick --with-jpeg'

Configured features:
JPEG RSVG DBUS NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
MODULES LCMS2

Important settings:
value of $LANG: en_BE.UTF-8
locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
crux-reopen-as-root-mode: t
recentf-mode: t
global-semanticdb-minor-mode: t
global-semantic-idle-scheduler-mode: t
semantic-mode: t
ivy-mode: t
shell-dirtrack-mode: t
savehist-mode: t
global-auto-revert-mode: t
diff-auto-refine-mode: t
rainbow-delimiters-mode: t
perspeen-mode: t
global-git-gutter-mode: t
git-gutter-mode: t
projectile-mode: t
show-paren-mode: t
smartparens-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
which-key-mode: t
yas-global-mode: t
yas-minor-mode: t
company-quickhelp-mode: t
company-quickhelp-local-mode: t
global-company-mode: t
company-mode: t
global-flycheck-mode: t
flycheck-mode: t
which-function-mode: t
global-aggressive-indent-mode: t
aggressive-indent-mode: t
indent-guide-global-mode: t
indent-guide-mode: t
global-hl-line-mode: t
delete-selection-mode: t
override-global-mode: t
cl-old-struct-compat-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
global-visual-line-mode: t
visual-line-mode: t
transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail easy-kill java-snippets
autoload lisp-mnt tar-mode mm-archive network-stream starttls url-http
tls gnutls url-gw nsm url-cache url-auth cus-edit semantic/dep
semantic/tag-file semantic/tag-write rng-xsd xsd-regexp rng-cmpct
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt
rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap
smartparens-html sgml-mode dom nxml-util nxml-enc xmltok crux eieio-opt
semantic/sb speedbar sb-image dframe tabify cl-print help-fns radix-tree
executable semantic/edit smex ido counsel jka-compr esh-util swiper
recentf tree-widget bookmark pp add-log semantic/imenu semantic/sort
semantic/db-file data-debug cedet-files semantic/wisent/java-tags
semantic/java semantic/decorate/include semantic/db-find semantic/db-ref
semantic/decorate/mode semantic/decorate pulse semantic/doc
semantic/wisent/javat-wy semantic/wisent semantic/wisent/wisent
semantic/db-mode semantic/db eieio-base semantic/idle semantic/format
ezimage semantic/tag-ls semantic/find semantic/ctxt semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
cedet eldoc-meghanada flycheck-meghanada company-meghanada meghanada url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs colir ivy flx ivy-overlay ffap tramp
tramp-compat tramp-loaddefs trampver shell pcomplete parse-time
cus-start cus-load detvdl-util detvdl-theme doom-themes-org
doom-one-theme doom-themes doom-themes-common smart-mode-line-dark-theme
smart-mode-line rich-minority detvdl-history savehist autorevert
filenotify detvdl-persp notmuch notmuch-message notmuch-hello wid-edit
notmuch-tree notmuch-show notmuch-print notmuch-crypto notmuch-mua
notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company
notmuch-parser notmuch-wash diff-mode coolj notmuch-query goto-addr
icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
notmuch-tag crm notmuch-lib notmuch-compat cl message rmc puny dired
dired-loaddefs format-spec rfc822 mml mailabbrev gmm-utils mailheader
mm-view mml-smime mml-sec epa derived epg gnus-util rmail rmail-loaddefs
mail-utils smime dig mm-decode mm-bodies mm-encode mailcap mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr rainbow-delimiters
company-yasnippet perspeen perspeen-tab powerline powerline-separators
color powerline-themes detvdl-mail detvdl-git git-gutter-fringe
git-gutter fringe-helper ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff detvdl-projectile projectile grep
compile comint ansi-color ibuf-ext ibuffer ibuffer-loaddefs detvdl-ivy
detvdl-smartparens paren smartparens-config smartparens-text smartparens
detvdl-common multiple-cursors mc-hide-unmatched-lines-mode
mc-separate-operations rectangular-region-mode mc-mark-pop mc-mark-more
thingatpt mc-cycle-cursors mc-edit-lines multiple-cursors-core rect
undo-tree diff which-key advice exec-path-from-shell detvdl-lang
detvdl-markdown detvdl-org detvdl-c detvdl-js detvdl-web detvdl-python
detvdl-clojure detvdl-java detvdl-elisp detvdl-lisp detvdl-ruby
detvdl-shell detvdl-yasnippet yasnippet elec-pair detvdl-company
company-quickhelp company-oddmuse company-keywords company-etags etags
xref project ring company-gtags company-dabbrev-code company-dabbrev
company-files company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-css company-nxml
company-bbdb company pcase pos-tip detvdl-programming flycheck json map
find-func subr-x dash which-func imenu aggressive-indent cl-extra
help-mode indent-guide detvdl-ui hl-line detvdl-editor delsel
use-package diminish bind-key easy-mmode finder-inf edmacro kmacro rx
info package easymenu epg-config url-handlers url-parse auth-source
cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars
seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core term/tty-colors frame cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind kqueue cocoa
ns lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 699833 97663)
(symbols 48 52510 2)
(miscs 40 956 1773)
(strings 32 137244 15338)
(string-bytes 1 4148600)
(vectors 16 89226)
(vector-slots 8 1766859 36431)
(floats 8 375 741)
(intervals 56 6535 4235)
(buffers 992 61))