Lisp HUG Maillist Archive

"No color-user found for ~s" ?

I'm using an offscreen CAPI pane to help with some simple image
operations (resizing, compositing, etc.)  Generally this works pretty well.

But I have two users that are getting an error that I am unable to
reproduce.  I had the stack trace dumped and sent back to me.  The error
message format string is "No color-user found for ~S" and it happens
when gp:read-and-convert-external-image is called.

Here is the interface definition for that offscreen buffer:

(capi:define-interface offscreen-pane (capi:interface) () (:panes
(viewer capi:output-pane)))


Here is the bit of code where the offscreen port is set up if it doesn't
exist already and the image loaded:

(unless *offscreen-port*
    (setq *offscreen-pane* (capi:display (make-instance 'offscreen-pane
:display-state :hidden)))
    (setq *offscreen-port* (with-slots (viewer) *offscreen-pane* viewer)))
  (let ((image (gp:read-and-convert-external-image *offscreen-port* path)))
    ....


And in the postscript of this message is relevant part of the stack
trace from where gp:read-and-convert-external-image is called to when
the exception is thrown (read it bottom to top).


What is this error telling me? What should I be doing to prevent it?

It doesn't seem to be a delivery error - I have tested this from the
delivered application and am utterly unable to reproduce the problem.
And most of my beta testers are not encountering it either.  For one of
my testers the problem is persistent - it always errors out.  For the
other it is only occasional.

Any help appreciated,

Chris Perkins / Media Lab, Inc.



P.S.

Call to "CONDITIONS-ERROR" (offset 356)
  "DATUM"     : "No color-user found for ~s"
  "ARGUMENTS" : (#<CAPI:OUTPUT-PANE IMAGE-OPS::VIEWER  235640D3>)
Open frame (1)

Catch frame: (NIL)

Open frame (3)

Call to "CONVERT-EXTERNAL-IMAGE" (offset 287)
  "GP"                                : #<CAPI:OUTPUT-PANE
IMAGE-OPS::VIEWER  235640D3>
  "EXTERNAL-IMAGE"                    : #<GRAPHICS-PORTS:EXTERNAL-IMAGE
200B97D3>
  "(CACHE *CACHE-EXTERNAL-IMAGES-P*)" : NIL
  "FORCE-NEW"                         : NIL
Open frame (6)

Call to "READ-AND-CONVERT-EXTERNAL-IMAGE" (offset 61)
  "GP"                      : #<CAPI:OUTPUT-PANE IMAGE-OPS::VIEWER
235640D3>
  "FILE"                    : "C:/Program Files/SiteGrinder
3/gallery_images/bamboo bowl--all.JPG"
  "TRANSPARENT-COLOR-INDEX" : NIL
Open frame (4)



Re: "No color-user found for ~s" ?

Chris Perkins wrote:
> What is this error telling me? What should I be doing to prevent it?

Are you testing an application being ported to LW6, and is your lone 
tester-who-always-gets-an-error on a multi-core Windows system?  And are 
you and most of your other testers on OS X systems?

Based on the code you included, mightn't it be possible that the call to 
create the image is happening before the viewer pane has an actual 
graphical representation?

Another consideration might be that the documentation states that 
operations on "displayed" elements should occur in the same process as 
their parent interface.


Mike


Updated at: 2020-12-10 08:40 UTC