Opened 8 years ago

Closed 7 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:

Description

(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(Debug.java:48)
at org.armedbear.lisp.Pathname.<init>(Pathname.java:154)
at org.armedbear.lisp.Pathname.mergePathnames(Pathname.java:1979)
at org.armedbear.lisp.Pathname$pf_merge_pathnames.execute(Pathname.java:1957)
at org.armedbear.lisp.LispThread?.execute(LispThread?.java:832)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
at org.armedbear.lisp.Primitives$pfeval.execute(Primitives.java:345)

Change History (2)

comment:1 Changed 8 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 8 years ago by Mark Evenson (previous) (diff)

comment:2 Changed 7 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.