Subject: bug#2566 closed by Dan Nicolaescu <[email-masked]> (Re: bug#2388: 23.0.90; wrong-type-argument in vc-dir)

From: [email-masked] (Emacs bug Tracking System)
Date: Wed, 15 Apr 2009 00:40:05 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs,vc-dir package:

#2388: 23.0.91; vc-dir: (wrong-type-argument arrayp nil)

It has been closed by Dan Nicolaescu <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Dan Nicolaescu <[email-masked]> by
replying to this email.

-- 
2388: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2388
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#2388: 23.0.90; wrong-type-argument in vc-dir
From: Dan Nicolaescu <[email-masked]>
To: [email-masked]
Cc: robert marshall <[email-masked]>
Date: Tue, 14 Apr 2009 17:30:16 -0700 (PDT)

Dan Nicolaescu <[email-masked]> writes:

  > robert marshall <[email-masked]> writes:
  > 
  >   > Nick Roberts wrote:
  >   > > Nick Roberts writes:
  >   > >  >  > > I can't reproduce this.
  >   > >  >  > > Can you please post step by step recipe of how you get this, starting
  >   > >  >  > > with emacs -Q.  >  > > The output of  >  > > svn -u status
  >   > >  >  > > in that directory might be helpful too.
  >   > >  >  > >    >  > I can't reproduce this either now :-(
  >   > >  >  > I have seen this sometimes when files have needed
  >   > > merging/updating.  I don't
  >   > >  > think it happened earlier because with SVN emacs didn't consult the remote
  >   > >  > repository by default:
  >   > >
  >   > > I still see this.  Here's a recent backtrace:
  >   > >
  >   > > Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  >   > >   ewoc-data(nil)
  >   > >   (let ((data ...)) (or (vc-dir-fileinfo->directory data)
  >   > > (file-name-directory ...)))
  >   > >   vc-dir-node-directory(nil)
  >   > >   (let* ((rd ...) (prev-node ...) (prev-dir ...)) (unless
  >   > > (string-equal entrydir prev-dir) (ewoc-enter-before vc-ewoc node
  >   > > ...)))
  >   > >   (cond ((string-lessp nodedir entrydir) (setq node ...))
  >   > > ((string-equal nodedir entrydir) (let ... ...)) (t (let* ... ...)
  >   > > (ewoc-enter-before vc-ewoc node ...) (setq entries ... entry ...)))
  >   > >   (let* ((entryfile ...) (entrydir ...) (nodedir ...)) (cond
  >   > > (... ...) (... ...) (t ... ... ...)))
  >   > >   (while (and entry node) (let* (... ... ...) (cond ... ... ...)))
  >   > >   (let ((entry ...) (node ...) (dotname ...)) (unless node
  >   > > (ewoc-enter-last vc-ewoc ...) (setq node ...)) (while (and entry
  >   > > node) (let* ... ...)) (unless (or node noinsert) (let ... ...)))
  >   > >   (save-current-buffer (set-buffer buffer) (setq entries (sort
  >   > > entries ...)) (let (... ... ...) (unless node ... ...) (while
  >   > > ... ...) (unless ... ...)))
  >   > >   (with-current-buffer buffer (setq entries (sort entries ...)) (let
  >   > > (... ... ...) (unless node ... ...) (while ... ...) (unless
  >   > > ... ...)))
  >   > >   vc-dir-update((("." needs-update) ("mydir" needs-update)
  >   > > ("pom.xml" needs-update) ("mydir1/mydir2/myfile" needs-update) ...
  >   > >
  >   > > which fails because node, i.e (ewoc-nth vc-ewoc 0), is nil.
  >   > >
  >   > >   
  >   > I'm seeing this, today, the status gives me
  >   > 
  >   > svn -u status
  >   >       *     7243   tests/compare.py
  >   >       *     7243   tests/harm.py
  >   >       *     7243   tests/setup-win.py
  >   >       *     7243   ipsa.i
  >   >       *     7243   Makefile
  >   >       *     7243   IscNetComponent.cpp
  >   >       *     7243   IscNetComparator.h
  >   >       *     7243   IpsaComparator.cpp
  >   >       *     7243   IscNetComponent.h
  >   >       *     7243   IscNetComparator.cpp
  >   >       *            IscCompareData.h
  >   > ?                   ipsa_wrap.cpp
  >   > M      *     7243   IscInterface.cpp
  >   > ?                   ipsa.py
  >   >       *            IscCompareData.cpp
  >   >       *     7243   Scripting.vcproj
  >   >       *     7243   .
  >        ^^^^^^^^^^^^^^^^^^^^^^^^ 
  >    This might be the cause of the problem.  Can you please try thing
  >    patch:
  > 
  > 
  > Index: vc-svn.el
  > ===================================================================
  > RCS file: /cvsroot/emacs/emacs/lisp/vc-svn.el,v
  > retrieving revision 1.112
  > diff -u -3 -p -u -p -r1.112 vc-svn.el
  > --- vc-svn.el 10 Feb 2009 05:59:14 -0000        1.112
  > +++ vc-svn.el 10 Mar 2009 20:49:23 -0000
  > @@ -176,7 +176,7 @@ want to force an empty list of arguments
  >         ;; FIXME are there other possible combinations?
  >              (cond ((eq state 'edited) (setq state 'needs-merge))
  >                       ((not state) (setq state 'needs-update))))
  > -       (when state
  > +       (when (and state (not (string= "." filename)))
  >           (setq result (cons (list filename state) result)))))
  >      (funcall callback result)))

After doing "svn update -rSOME_OLDER_VERSION" it seems that "." can
appear in the "svn status" output.  So I applied this patch.

Subject: 23.0.91; vc-dir: (wrong-type-argument arrayp nil)
From: "AE/Fischer Martin" <[email-masked]>
To: <[email-masked]>
Date: Wed, 4 Mar 2009 11:29:34 +0100

*** E-Mail body has been placed on clipboard, please paste them here!
***

--------------------------------------------------------------
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  ewoc-data(nil)
  vc-dir-node-directory(nil)
  vc-dir-update((("jars\\vfst\\stala\\stala_src.jar" needs-update)
("test\\de\\vfst\\data\\transformer\\DatenuebernahmeTest.java"
needs-update) ("test\\de\\vfst\\epr\\converter\\testdata" needs-update)
("test\\de\\vfst\\epr\\converter\\base\\AbstractXmlTestBase.java"
needs-update) ("test\\de\\vfst\\epr\\converter\\base\\mssql.properties"
unregistered) ("test\\de\\vfst\\epr\\converter\\base\\oracle.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\base\\ortsbuch-derby_test.properties"
unregistered) ("test\\de\\vfst\\epr\\converter\\base\\stamt.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\base\\sybase-integration.properties"
unregistered) ("test\\de\\vfst\\epr\\converter\\base\\sybase.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\base\\test_external.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\EprActualFmTransformTest.ja
va" edited)
("test\\de\\vfst\\epr\\converter\\fachtests\\mssql.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\oracle.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\ortsbuch-derby_test.propert
ies" unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\reg_from_ltChanges_aufl_tep
1_1_std_l_reg_vp_test1.xml" unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\stamt.properties"
unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\sybase-integration.properti
es" unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\sybase.properties"
unregistered) ("test\\de\\vfst\\epr\\converter\\fachtests\\test.xml"
unregistered)
("test\\de\\vfst\\epr\\converter\\fachtests\\test_external.properties"
unregistered) ("test\\de\\vfst\\epr\\converter\\testdata\\et"
needs-update) ("test\\de\\vfst\\epr\\converter\\testdata\\lt"
unregistered) ("test\\de\\vfst\\epr\\converter\\testdata\\{}"
unregistered)
("test\\de\\vfst\\epr\\converter\\testdata\\eh\\ehFromEpr_fm_test1.xml"
needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\eh\\fmEH_from_std_e_reg_all_
test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\eh\\fmEH_from_std_e_reg_all_
test2.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nanfe_all_test
1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nanme_all_test
1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nbe_all_test1.
xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nbf_all_test1.
xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nhf_all_test1.
xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nhm_all_test1.
xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_no_test1.xml"
needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emChanges_nrfna_all_test
1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emFromEpr_fm_test1.xml"
needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\emToEpr_reg_test1.xml"
needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nanfe
_all_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nanfe
_all_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nanme
_all_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nanme
_all_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nbe_a
ll_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nbe_a
ll_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nbf_a
ll_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nbf_a
ll_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nhf_a
ll_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nhf_a
ll_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nhm_a
ll_1_std_e_reg_aufl_b_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_nhm_a
ll_1_std_e_reg_vh_test1.xml" needs-update)
("test\\de\\vfst\\epr\\converter\\testdata\\em\\reg_from_emChanges_no_1_
std_e_reg_aufl_b_test1.xml" needs-update) ...) #<buffer *vc-dir*>)
  #[(G31401 entries &optional more-to-come) "rJq  	J\" \n? '
--------------------------------------------------------------

In GNU Emacs 23.0.91.1 (i386-mingw-nt5.1.2600)
 of 2009-02-27 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: DEU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <se
nd-emacs-bug-report>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading vc-cvs...done