Opened 6 years ago

Closed 6 years ago

Last modified 5 years ago

#375 closed defect (fixed)

CL:OPEN failure

Reported by: Evenson Not Org Owned by:
Priority: major Milestone: 1.3.2
Component: java Version: 1.4.0-dev
Keywords: Cc:
Parent Tickets:

Description

The following form

(open #p"~/xx" :direction :output
               :if-exists :append
               :external-format '(:latin-1 :eol-style :lf))

fails with the following message

; Evaluation aborted on NIL.

Subtickets

Change History (6)

comment:1 Changed 6 years ago by Evenson Not Org

Running outside of SLIME gives the more intelligible

java.nio.charset.UnsupportedCharsetException: LATIN-1
	at java.nio.charset.Charset.forName(Charset.java:531)
	at org.armedbear.lisp.util.RandomAccessCharacterFile.setEncoding(RandomAccessCharacterFile.java:309)
	at org.armedbear.lisp.util.RandomAccessCharacterFile.<init>(RandomAccessCharacterFile.java:288)

Why does SLIME not return a meaningful error?

Should we add some sort of alias for LATIN-1

comment:2 Changed 6 years ago by Evenson Not Org

Observation: UnsupportedCharsetException? is a Java runtime exception.

Hypothesis: The SLIME :spawn communication style is not correctly communicating the runtime exception back to the SWANK listener.

comment:3 Changed 6 years ago by Evenson Not Org

Triggering the runtime exception via

(jstatic "forName" "java.nio.charset.Charset" "foo")

shows that SLIME does seem to work with RuntimeException?.

Maybe the difference is that the RuntimeException? is occurring inside nested constructors?

Recommendation: signal a meaningful Lisp condition when an invalid charset is used.

comment:4 Changed 6 years ago by Evenson Not Org

SIMPLE-ERROR now signaled for invalid encodings in r14735.

Unsure if there is still a problem lurking in how SLIME interacts with Java exceptions thrown by the ABCL implementation, but closing for now.

comment:5 Changed 6 years ago by Evenson Not Org

Resolution: fixed
Status: newclosed

comment:6 Changed 5 years ago by Evenson Not Org

Milestone: 1.4.01.3.2
Note: See TracTickets for help on using tickets.