Hi,

I'm using weblocks-dev about 2 months old, and I have some strange
issues with this code, and couple of questions:

(defun layout (comp)
  (setf (weblocks:composite-widgets comp)
        (list
         (make-instance 'flash :messages
                        (list (weblocks:make-widget "Some welcome message")))
         (weblocks:make-navigation "Main menu"
                                   (list "MainMenuItem1" (main-menu-item1) 
"mainmenuitem1")
                                   (list "MainMenuItem2" 
(weblocks:make-navigation "MainMenuItem2"
                                                                          (list 
"SubMM2Item1" (sub-mm2-item1) "submm2item1")
                                                                          (list 
"SubMM2Item2" (sub-mm2-item2) "submm2item2")))
                                   (list "MainMenuItem3" 
(weblocks:make-navigation "MainMenuItem3"
                                                                        (list 
"SubMM3Item1" (sub-mm3-item1) "submm3item1")
                                                                        (list 
"SubMM3Item2" (sub-mm3-item2) "submm3item2")))))))

It compiles fine, but weblocks complains with the backtrace saying

UNBOUND-SLOT: The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.

The strange thing is that if I reload the page without resseting the
session, menu shows up, and every menu item is there and works as is
supposed to. But every time I reset the session, I first get the same
error, and then when I again reload the page without reseting the
session, everything works fine.

Now, the questions:
- I understand that the one element of the list ("menu" (function)
"menu") is for displaying on the menu, but what is the second "menu"
for?
- I've seen examples that use ('menuitem (function)) format. What are
advantages/disadvantages compared to the first method?

Detailed backtrace:


Weblocks caught an error

Description
UNBOUND-SLOT: The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
Actions

Reset this web application's session
Session data

TODO

Restarts

TODO

Backtrace

Function        Arguments
33      MAP-BACKTRACE   #<CLOSURE (LAMBDA (SB-DEBUG::FRAME)) {10041CBB09}>

32      BACKTRACE-AS-LIST       1152921504606846975

31      (FAST-METHOD HANDLE-ERROR-CONDITION (WEBLOCKS-WEBAPP T))        
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.

30      (FLET LAMBDA13) 
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.

29      SIGNAL  
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.

28      ERROR   
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.

27      (FAST-METHOD SLOT-UNBOUND (T T T))      
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
BASE-URI

26      SLOT-UNBOUND-INTERNAL   #<NAVIGATION "MainMenuItem3"> 8

25      (FAST-METHOD RENDER-NAVIGATION-MENU (NAVIGATION))       
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">

24      (LAMBDA (OBJ &REST ARGS))       
#<NAVIGATION "MainMenuItem3">

23      (FAST-METHOD WITH-WIDGET-HEADER (T T))  
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
#<FUNCTION (LAMBDA (WEBLOCKS::OBJ &REST WEBLOCKS::ARGS)) {10038067F9}>

22      (FAST-METHOD RENDER-WIDGET (T)) 
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">

21      RENDER-DIRTY-WIDGETS    

20      (LAMBDA ())     

19      (FAST-METHOD HANDLE-CLIENT-REQUEST (WEBLOCKS-WEBAPP))   
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>

18      (FLET doit-71)  

17      (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T))  
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (1))
#<VTS {1002ACF001}>

16      (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T))  
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (1))
#<VTS {1002ACF001}>

15      CALL-IN-WEBAPP  
#<VTS {1002ACF001}>
#<CLOSURE (LAMBDA ()) {10040FBC59}>

14      (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (WEBLOCKS-WEBAPP))    
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND ...)> :PV NIL :NEXT-METHOD-CALL
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL
:NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1))
#<VTS {1002ACF001}>

13      (FAST-METHOD HANDLE-REQUEST (ACCEPTOR REQUEST)) 
#<unavailable argument>
#<unavailable argument>
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<REQUEST {10040273A1}>

12      (FAST-METHOD PROCESS-REQUEST (T))       
#<unavailable argument>
#<unavailable argument>
#<REQUEST {10040273A1}>

11      (FAST-METHOD PROCESS-CONNECTION (ACCEPTOR T))   
#<unavailable argument>
#<unavailable argument>
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>

10      (FAST-METHOD PROCESS-CONNECTION (WEBLOCKS-ACCEPTOR T))  
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (2))
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>

9       (FAST-METHOD PROCESS-CONNECTION AROUND (ACCEPTOR T))    
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL
:NEXT-METHOD-CALL NIL :ARG-INFO (2)) :ARG-INFO (2))
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>

8       (LAMBDA ())     

7       (FLET WITHOUT-INTERRUPTS-BODY-[BLOCK369]374)    

6       (FLET WITH-MUTEX-THUNK) 

5       (FLET WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)     

4       CALL-WITH-MUTEX 
#<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF21BECB9}>
#S(SB-THREAD:MUTEX :NAME thread result lock :%OWNER #<THREAD
"rendering widget #<NAVIGATION \"MainMenuItem3\">" RUNNING
{1003CEAE41}> :STATE 1)
#<THREAD "rendering widget #<NAVIGATION \"MainMenuItem3\">" RUNNING
{1003CEAE41}>
T

3       INITIAL-THREAD-FUNCTION 

2       foreign function: call_into_lisp        

1       foreign function: new_thread_trampoline 

This is the Weblocks Application Framework running on Hunchentoot
1.1.1 (SBCL 1.0.44) at localhost:8443

-- 
You received this message because you are subscribed to the Google Groups 
"weblocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/weblocks?hl=en.

Reply via email to