Opened 5 years ago

Closed 5 years ago

#433 closed defect (fixed)

merge-pathnames blocks error signal?

Reported by: aruttenberg Owned by:
Priority: major Milestone: 1.5.0
Component: interpreter Version: 1.5.0-dev
Keywords: cl:pathname :unspecific Cc:
Parent Tickets:


(make-pathname :directory '(:absolute ("a" "b")))
property signals an error Unsupported directory component (a b).

However the following
(merge-pathnames (make-pathname :directory '(:absolute ("a" "b"))) "")

Does not, instead spitting out a java stack trace

ABCL Debug.assertTrue() assertion failed!
java.lang.Error: ABCL Debug.assertTrue() assertion failed!

at org.armedbear.lisp.Debug.assertTrue(
at org.armedbear.lisp.Pathname.<init>(
at org.armedbear.lisp.Pathname.mergePathnames(
at org.armedbear.lisp.Pathname$pf_merge_pathnames.execute(
at org.armedbear.lisp.LispThread?.execute(LispThread?.java:832)
at org.armedbear.lisp.Lisp.evalCall(
at org.armedbear.lisp.Lisp.eval(
at org.armedbear.lisp.Primitives$pfeval.execute(

Change History (2)

comment:1 Changed 5 years ago by Mark Evenson

As suggested in <irc:freenode:#abcl> by Ferada: the fix would be to replace the Debug.assertTrue() with code that throws a proper Lisp ERROR.

In general, the Debug.assertTrue() instances in the codebase should be audited, and replaced where possible.

Last edited 5 years ago by Mark Evenson (previous) (diff)

comment:2 Changed 5 years ago by Mark Evenson

Keywords: cl:pathname :unspecific added
Milestone: 1.5.0
Resolution: fixed
Status: newclosed
Version: 1.5.0-dev
Note: See TracTickets for help on using tickets.