cl-test-grid results for svn revision 14755

Mark Evenson evenson at
Sat Apr 11 07:59:21 UTC 2015

On 2015/4/8 20:13, Massimiliano Ghilardi wrote:
>> Only I am surprised that LispObjects can be null: is it allowed, and
>> when can it happen?

As far as I can determine, LispObject references should never be null
when being passed as an argument to a Java function, but the code base
is inconsistent (buggy) on this point.

>> Max
> In attachment a patch that should fix issue 388.
> Before accepting it, please check whether ABCL is really supposed to
> pass null LispObjects to the Java implementation of primitive types: the
> NullPointerException was due to a call to
> Fixnum.equalp(LispObject obj) with obj == null
> Regards,
> Max

Your patch has been applied as [r14757][].

As for your question on "whether ABCL is really supposed to pass null
LispObject references to the Java implementation of primitive types", I
think the answer is negative, as a Java primitive type by definition
cannot hold a null reference.  This disjunction from java.lang.Object is
what "makes" it a primitive type.  Our codebase is riddled with the
assumption that accessing a LispObject won't return a null, as in the
location your [test case failed][1]:

    if (!value.equalp(ht.get(key))) {
      return false;

Here, ht.get() should not return a null reference to be chained into the
value.equalp() call no matter what the value of 'key' turns out to be.
In lieu of something like a comprehensive audit, we are unfortunately
left fixing these problems on a case by case basis.

But perhaps I have misunderstood your question somewhat:  is there
something more specific you were referring to?


"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."

More information about the armedbear-devel mailing list