When using the jde-xref feature, I have experienced a problem.
Syndrome: After jde-xref-make-xref-db, I moved the cursor to a method
in one of my classes ClassA and did a C-c C-v a, I got this in the
mini-buffer:
Wrong type argument: listp, "com.x.x.ClassB"
The "ClassB" is the super class of ClassA.
C-c C-v n works fine.
I took a look at the code in jde-xref.el. I seems to me that the
offending section is in this area:
(defun jde-xref-next-caller ()
"If there are items still on the caller stack, pop the first one off
and show it"
(interactive)
(if jde-xref-stack
(if (listp (car jde-xref-stack))
(jde-xref-goto-caller (pop jde-xref-stack))
(jde-xref-goto-caller (pop (pop jde-xref-stack)))) ;; skip over called classname
(message "No more calls")))
So if jde-xref-stack is not a list, it still pop it anyway in the else block.
I don't understand the code good enough to fix it. But I like the
feature very much and hope someone can take a look at it, or help me a
little me to understand this so that I can fix it.
Regards,
Ping