[elephant-devel] Help with an error on app startup/initialization
Yarek Kowalik
yarek.kowalik at gmail.com
Thu Dec 11 18:56:40 UTC 2008
I've converted my weblocks app to use elephant. One of the first things I
do is to initialize some variables. One of the variables is a "demo" item,
that I use as a placeholder until the user choses something more specific.
I'm having trouble initializing the dummy. Here is my code:
(defun init-dummy-item ()
(let* ((ref-type 0)
(ref-id "dummy-item"))
(setf *dummy-item*
(unless-use (awhen (elephant:get-instances-by-value 'product-item
'reference-id ref-id)
(find-if (lambda (item)
(eql (product-item-reference-type item)
ref-type))
it))
(make-instance
'product-item
:reference-type ref-type
:reference-id ref-id
:title "No Item selected"
:url "/pub/static/dummy.html"
:image-url "/pub/images/dummy.png")))))
(The UNLESS-USE macro simply does unless, and if results are nil uses the
second sexp.)
The problem is that I get an error (see trace below) when calling
GET-INSTANCES-BY-VALUE. What am I doing wrong?
The nearest that I can gather is that GET-VALUE is called with the secondd
argument as NIL, but it's supposed to be something reasonable, i.e a
controller-index-table held by the controler. For whatever raeson that's
NIL. What's the deal here? Am I not alowed to call the get-instances-by-*
methods until I create at least one item for each class I'm querying about?
Yarek
THE ERROR:
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION ELEPHANT:GET-VALUE (3)>
when called with arguments
((FASHION-ORIGAMI::PRODUCT-ITEM
. FASHION-ORIGAMI::REFERENCE-ID)
NIL).
[Condition of type SIMPLE-ERROR]
Restarts:
0: [TERMINATE-THREAD] Terminate this thread (#<THREAD
"hunchentoot-worker-4" RUNNING {10029A0321}>)
Backtrace:
0: ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA #)
{1003F6A4C9}>)
1: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR {1002E3A1A1}>)
2: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1002E3A9D9}>)
3: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {10037B86D1}>
#<CLOSURE (LAMBDA #) {1002E3A9F9}>)
4: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {10037B86D1}>
#<CLOSURE (LAMBDA #) {1002E3A9D9}>)
5: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR {1002E3A1A1}>)
6: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1002E3A999}>)
7: (INVOKE-DEBUGGER #<SIMPLE-ERROR {1002E3A1A1}>)
8: (INVOKE-DEBUGGER #<SIMPLE-ERROR {1002E3A1A1}>)[:EXTERNAL]
9: ((SB-PCL::FAST-METHOD HUNCHENTOOT:MAYBE-INVOKE-DEBUGGER (T))
#<unavailable argument> #<unavailable argument> #<SIMPLE-ERROR
{1002E3A1A1}>)
10: (SIGNAL #<SIMPLE-ERROR {1002E3A1A1}>)[:EXTERNAL]
11: (ERROR #<SIMPLE-ERROR {1002E3A1A1}>)[:EXTERNAL]
12: ((FLET #:LAMBDA43) #<SIMPLE-ERROR {1002E3A1A1}>)
13: ((FLET #:LAMBDA43) #<SIMPLE-ERROR {1002E3A1A1}>)[:EXTERNAL]
14: (SIGNAL #<SIMPLE-ERROR {1002E3A1A1}>)[:EXTERNAL]
15: (ERROR "~@<There is no applicable method for the generic function
~2I~_~S~\n ~I~_when called with arguments ~2I~_~S.~:>")[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = 3
SB-DEBUG::ARG-1 = "~@<There is no applicable method for the generic
function ~2I~_~S~\n ..
16: ((SB-PCL::FAST-METHOD NO-APPLICABLE-METHOD (T)) #<unavailable argument>
#<unavailable argument> #<STANDARD-GENERIC-FUNCTION ELEPHANT:GET-VALUE
(3)>)[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = 5
SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-2 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-3 = #<STANDARD-GENERIC-FUNCTION ELEPHANT:GET-VALUE
(3)>
17: (ELEPHANT::ENSURE-SLOT-DEF-INDEX #<unavailable argument> #<unavailable
argument>)
Locals:
SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
18: ((SB-PCL::FAST-METHOD ELEPHANT:FIND-INVERTED-INDEX
(ELEPHANT:PERSISTENT-METACLASS T)) #<unavailable argument> #<unavailable
argument> #<unavailable argument> #<unavailable argument>)[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-2 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-3 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-4 = :<NOT-AVAILABLE>
19: (ELEPHANT:MAP-INVERTED-INDEX #<unavailable argument> #<unavailable
argument> #<unavailable argument>)[:EXTERNAL]
Locals:
SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-2 = :<NOT-AVAILABLE>
SB-DEBUG::ARG-3 = :<NOT-AVAILABLE>
20: (FASHION-ORIGAMI::INIT-DUMMY-ITEM)
Locals:
#:G137 = :<NOT-AVAILABLE>
ANAPHORA:IT = :<NOT-AVAILABLE>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20081211/16877a02/attachment.html>
More information about the elephant-devel
mailing list