Which version of elephant are you using? Which backend are you using? If BDB, which version?
I presume *store-controller* open and reachable from the package you are in? Looks like the elephant store isn't in the proper state (e.g. was closed and *store-controller* was not zeroed out). On Dec 11, 2008, at 1:56 PM, Yarek Kowalik wrote: > 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> > > > > _______________________________________________ > elephant-devel site list > elephant-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel