Subject: 23.4; bug with regexp in java-mode

From: Francesco Potortì <[email-masked]>
Date: Fri, 16 May 2014 16:16:23 +0200

$ emacs -Q -nw -l java.el.bug
$ ls -l java.el.*
-rw-rw-r-- 1 pot pot  488 May 16 16:07 java.el.bug
-rw-rw-r-- 1 pot pot  508 May 16 16:09 java.el.java

================ java.el.bug ================
(add-hook 'java-mode-hook
	  (lambda ()
	    (setq comment-column 48
		  fill-column 78)
	    (make-variable-buffer-local 'c-hanging-comment-ender-p)
	    (make-variable-buffer-local 'c-comment-continuation-stars)
	    (make-variable-buffer-local 'defun-prompt-regexp)
	    (setq c-hanging-comment-ender-p nil
		  c-comment-continuation-stars "* ")
	    ;; This one hangs Emacs 22 and 23 !
	    (setq defun-prompt-regexp "\\(class\\|/\\*\\*\\)[^{]*")
	    ))

(find-file "java.el.java")
================ end of java.el.bug ================

================ java.el.java ================
/*******************************************************************************
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 ******************************************************************************/
package org.test.ontology;

import org.test.middleware.container.ModuleContext;
import org.test.middleware.container.ModuleActivator;
import org.test.middleware.owl.OntologyManagement;
import org.test.ontology.security.SecurityOntology;

/**
 *
 */
================ end of java.el.java ================

Emacs (in a virtual term) hangs with 100% CPU and does not respond to
any keystrokes, including ^C and ^G.

In GNU Emacs 23.4.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.22)
 of 2013-12-22 on binet, modified by Debian
configured using `configure  '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.4/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -DDEBIAN -O2' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: it_IT.UTF-8
  value of $LC_CTYPE: it_IT.UTF-8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: C
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  desktop-save-mode: t
  shell-dirtrack-mode: t
  openwith-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
O A ESC O A ESC O A ESC O A ESC O A ESC O A ESC O A 
C-w RET C-x C-s C-_ C-_ ESC O B ESC O B ESC O B ESC 
O B ESC O B ESC O B ESC O B ESC O B ESC k C-x C-s ESC 
! ESC O A RET ESC O A ESC O A ESC O B ESC O B ESC O 
B ESC O B RET ESC > C-w C-x C-s ESC ! ESC O A RET ESC 
O A ESC O A ESC O A ESC O A ESC O A ESC O A ESC O A 
ESC O A ESC O A ESC O A ESC O B ESC O C ESC O C ESC 
O C ESC O C ESC O C ESC O C ESC O C ESC O C ESC O C 
ESC O C ESC O C ESC O C ESC O A ESC O A ESC O A ESC 
% u n i v e r s A A L RET t e s t RET ! C-x C-s ESC 
! ESC O A RET ESC ! ESC O A RET ESC ! ESC O A RET ESC 
! p s SPC u f a x w w RET C-x o C-s e m a c s ESC ! 
k i l l SPC 1 8 8 7 RET ESC ! ESC O A ESC O C ESC O 
C ESC O C ESC O C ESC O C 1 RET ESC ! p s SPC u f a 
x w w RET C-x o C-x o C-s - Q RET ESC ! ESC O A ESC 
O A RET ESC x r e p o r t TAB RET

Recent messages:
Mark set
Replaced 5 occurrences
Saving file /home/pot/java.el.java...
Removing trailing spaces and newlines...
Wrote /home/pot/java.el.java
(Shell command succeeded with no output) [3 times]
Mark saved where search started
(Shell command succeeded with no output)
Mark saved where search started
(Shell command succeeded with no output)

Load-path shadows:
~/elisp/bhl hides /usr/share/emacs/23.4/site-lisp/bhl
~/elisp/bhl hides /usr/share/emacs/site-lisp/bhl
/usr/share/emacs/23.4/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs23/site-lisp/flim/sha1 hides /usr/share/emacs/23.4/lisp/sha1
~/elisp/proced hides /usr/share/emacs/23.4/lisp/proced
~/elisp/ibuffer hides /usr/share/emacs/23.4/lisp/ibuffer
/usr/share/emacs23/site-lisp/flim/md4 hides /usr/share/emacs/23.4/lisp/md4
~/elisp/ruler-mode hides /usr/share/emacs/23.4/lisp/ruler-mode
~/elisp/ido hides /usr/share/emacs/23.4/lisp/ido
~/elisp/format-spec hides /usr/share/emacs/23.4/lisp/format-spec
~/elisp/whitespace hides /usr/share/emacs/23.4/lisp/whitespace
/usr/share/emacs23/site-lisp/flim/hex-util hides /usr/share/emacs/23.4/lisp/hex-util
~/elisp/t-mouse hides /usr/share/emacs/23.4/lisp/t-mouse
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/23.4/lisp/textmodes/flyspell
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/23.4/lisp/textmodes/ispell
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/23.4/lisp/textmodes/rst
~/elisp/bibtex hides /usr/share/emacs/23.4/lisp/textmodes/bibtex
~/elisp/octave-mod hides /usr/share/emacs/23.4/lisp/progmodes/octave-mod
/usr/share/emacs23/site-lisp/flim/ntlm hides /usr/share/emacs/23.4/lisp/net/ntlm
/usr/share/emacs23/site-lisp/flim/hmac-md5 hides /usr/share/emacs/23.4/lisp/net/hmac-md5
/usr/share/emacs23/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/23.4/lisp/net/sasl-ntlm
/usr/share/emacs23/site-lisp/flim/sasl-digest hides /usr/share/emacs/23.4/lisp/net/sasl-digest
~/elisp/newsticker hides /usr/share/emacs/23.4/lisp/net/newsticker
/usr/share/emacs23/site-lisp/flim/sasl hides /usr/share/emacs/23.4/lisp/net/sasl
/usr/share/emacs23/site-lisp/flim/sasl-cram hides /usr/share/emacs/23.4/lisp/net/sasl-cram
/usr/share/emacs23/site-lisp/flim/hmac-def hides /usr/share/emacs/23.4/lisp/net/hmac-def
~/elisp/undigest hides /usr/share/emacs/23.4/lisp/mail/undigest
~/elisp/smie hides /usr/share/emacs/23.4/lisp/emacs-lisp/smie
/usr/share/emacs23/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs23/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs23/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs23/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs23/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs23/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs23/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs23/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs23/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs23/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs23/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs23/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs23/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs23/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs
/usr/share/emacs23/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs23/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs23/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs23/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs23/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs23/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs23/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs23/site-lisp/mailcrypt/expect hides /usr/share/emacs/site-lisp/mailcrypt/expect
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp5 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp5
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp6 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp6
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp
/usr/share/emacs23/site-lisp/mailcrypt/mc-toplev hides /usr/share/emacs/site-lisp/mailcrypt/mc-toplev
/usr/share/emacs23/site-lisp/mailcrypt/mailcrypt hides /usr/share/emacs/site-lisp/mailcrypt/mailcrypt
/usr/share/emacs23/site-lisp/mailcrypt/mc-setversion hides /usr/share/emacs/site-lisp/mailcrypt/mc-setversion
/usr/share/emacs23/site-lisp/mailcrypt/mc-remail hides /usr/share/emacs/site-lisp/mailcrypt/mc-remail
/usr/share/emacs23/site-lisp/mailcrypt/mc-gpg hides /usr/share/emacs/site-lisp/mailcrypt/mc-gpg

Features:
(shadow sort mail-extr message ecomplete mml mml-sec mm-decode mm-bodies
mm-encode mailcap mail-parse rfc2231 mailabbrev nnheader gmm-utils
wid-edit mailheader canlock sha1 sha1-el hex-util hashcash emacsbug
cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs debug time-stamp newcomment multi-isearch sgml-mode desktop
warnings server pot rmailsum rmail mail-utils sendmail rfc2047 rfc2045
ietf-drums qp mm-util mail-prsvr mime-compose tramp-imap assoc tramp-gw
tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp auth-source
gnus-util netrc time-date shell password-cache format-spec cl cl-19
tramp-compat trampver bhl switch-to-shell display-buffer-for-wide-screen
openwith sh-beg-end hi-lock ffap scroll-in-place filladapt ansi-color
time jka-compr uniquify advice help-fns advice-preload quail help-mode
view mailcrypt rfc822 comint ring easymenu dired-x dired-aux dired
regexp-opt generic-x disp-table debian-el debian-el-loaddefs w3m-load
vm-autoload vm-autoloads vm-vars vm-version vm-init mailcrypt-init
preview-latex tex-site auto-loads tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process dbusbind
system-font-setting font-render-setting gtk x-toolkit x multi-tty emacs)

-- 
Francesco Potortì (ricercatore)        Voice:  +39.050.621.3058
ISTI - Area della ricerca CNR          Mobile: +39.348.8283.107
via G. Moruzzi 1, I-56124 Pisa         Skype:  wnlabisti
(entrance 20, 1st floor, room C71)     Web:    http://fly.isti.cnr.it