[cl-dwim-devel] Several errors in the cl-dwim

Leonid Novikov novikov.leon at gmail.com
Sat May 23 18:09:48 UTC 2009


I tried to create a small application using dwim and encountered the
following problems:

1. My model consists of one object

(def entity user (audited-object subject)
  ((login :type standard-text
	  :primary #t
	  :index #t)))

I created it as follows

(with-model-database
    (with-read-lock-held-on-model
      (clearf dmm::*scheduler-technical-subject-singleton*
              dmm::*repl-technical-subject-singleton*
              dmm::*import-technical-subject-singleton*)
      (do-symbols (symbol :my-dwim-test)
        (when (ppcre:all-matches "^\\*.*-SINGLETON\\*" (symbol-name symbol))
          (clearf (symbol-value symbol))))
      (with-transaction
        (purge-instances 'persistent-object))
      (with-transaction
        (bind ((*audit-changes* #f))
          (create-test-cluster)
          (create-production-cluster))
        (with-import-technical-subject
          (dolist (instance (select-clusters))
            (touch-instance instance #t))
          (dolist (instance (select-cluster-nodes))
            (touch-instance instance #t))))
      (with-transaction
        (with-import-technical-subject
          (let ((*always-reload-authenticated-session-on-transaction-boundary*
#f))
	    (create-user))))
      (with-transaction
        (prc::signal-broken-references))))
  (importing.info "Finished importing"))

(def function create-user ()
     (multiple-value-bind (password salt)
	 (digest-password-with-sha256 "admin123"
(dwim-meta-model::random-string +password-salt-length+))
       (make-encrypted-password-authentication-instrument
	:subject (make-instance 'user :login "admin123"
				:subject-preferences (make-instance 'subject-preferences))
	:password password
	:salt salt)))


When I use the default value for
*always-reload-authenticated-session-on-transaction-boundary* then I
receive an error. Did you make this variable to # f when creating the
model?

2. For interface of the making the user I use following code

(standard-object-maker-menu-item 'user)

when trying to save get error:

The slot HU.DWIM.WUI::COMPONENT-VALUE is unbound in the object #<BOOLEAN-MAKER>.
   [Condition of type UNBOUND-SLOT]

Restarts:
 0: [CONTINUE] Continue processing the error (and probably send an error page)
 1: [USE-VALUE] Return a value as the slot-value.
 2: [STORE-VALUE] Store and return a value as the slot-value.
 3: [TERMINATE-TRANSACTION] return (values) from the WITH-TRANSACTION
block executing the current terminal action :COMMIT
 4: [COMMIT-TRANSACTION] mark transaction for commit only and return
(values) from the WITH-TRANSACTION block
 5: [ROLLBACK-TRANSACTION] mark transaction for rollback only and
return (values) from the WITH-TRANSACTION block
 --more--

Backtrace:
  0: ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA #)
{B616BDD}>)
  1: (SWANK::DEBUG-IN-EMACS #<UNBOUND-SLOT COMPONENT-VALUE {108085F1}>)
  2: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1081DE35}>)
  3: (SWANK::CALL-WITH-BINDINGS ..)
  4: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {BC73731}>
#<CLOSURE (LAMBDA #) {1081DE35}>)
  5: (SWANK:INVOKE-SLIME-DEBUGGER #<UNBOUND-SLOT COMPONENT-VALUE {108085F1}>)
  6: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1081DE15}>)
  7: (SWANK:SWANK-DEBUGGER-HOOK #<UNBOUND-SLOT COMPONENT-VALUE
{108085F1}> #<unavailable argument>)
  8: (HU.DWIM.WUI::INVOKE-SLIME-DEBUGGER #<UNBOUND-SLOT
COMPONENT-VALUE {108085F1}>)[:EXTERNAL]
  9: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.)) ..)
 10: ((SB-PCL::FAST-METHOD HANDLE-TOPLEVEL-CONDITION :AROUND (T T)) ..)
 11: ((FLET HU.DWIM.WUI::HANDLE-REQUEST-ERROR) #<UNBOUND-SLOT
COMPONENT-VALUE {108085F1}>)
 12: ((LABELS HU.DWIM.WUI::LEVEL-1-ERROR-HANDLER) #<UNBOUND-SLOT
COMPONENT-VALUE {108085F1}>)
 13: (SIGNAL #<UNBOUND-SLOT COMPONENT-VALUE {108085F1}>)[:EXTERNAL]
 14: (ERROR #<UNBOUND-SLOT COMPONENT-VALUE {108085F1}>)[:EXTERNAL]
 15: ((SB-PCL::FAST-METHOD SLOT-UNBOUND (T T T)) #<unavailable
argument> #<unavailable argument> #<unavailable argument>
#<BOOLEAN-MAKER> HU.DWIM.WUI::COMPONENT-VALUE)
 16: ((LAMBDA (SB-KERNEL:INSTANCE)) #<unavailable argument>)
 17: (SLOT-VALUE #<BOOLEAN-MAKER> HU.DWIM.WUI::COMPONENT-VALUE)
 18: ((SB-PCL::FAST-METHOD COMPONENT-VALUE-OF :AROUND (PRIMITIVE-COMPONENT)) ..)
 19: ((SB-PCL::FAST-METHOD COLLECT-MAKE-INSTANCE-INITARGS
(PLACE-MAKER)) #<unavailable argument> #<unavailable argument>
#<PLACE-MAKER :CONTENT #<BOOLEAN-MAKER>>)
 20: ((SB-PCL::FAST-METHOD COLLECT-MAKE-INSTANCE-INITARGS
(STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER)) #<unavailable argument>
#<unavailable argument> #<STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER>)
 21: (SB-IMPL::MAP1 #<STANDARD-GENERIC-FUNCTION
COLLECT-MAKE-INSTANCE-INITARGS (8)>
((#<STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER>
#<STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER>)) :LIST T)
 22: (MAPCAR #<STANDARD-GENERIC-FUNCTION
COLLECT-MAKE-INSTANCE-INITARGS (8)>
(#<STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER>
#<STANDARD-OBJECT-SLOT-VALUE-GROUP-MAKER>))[:EXTERNAL]
 23: (MAPPEND #<STANDARD-GENERIC-FUNCTION
COLLECT-MAKE-INSTANCE-INITARGS (8)>)[:EXTERNAL]
 24: ((SB-PCL::FAST-METHOD MAKE-INSTANCE-USING-INITARGS
(STANDARD-OBJECT-MAKER STANDARD-CLASS STANDARD-OBJECT)) ..)
 25: ((SB-PCL::FAST-METHOD MAKE-INSTANCE-USING-INITARGS
(STANDARD-OBJECT-MAKER PERSISTENT-CLASS PERSISTENT-OBJECT)) ..)
 26: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE= (T
RECURSION-POINT-COMPONENT STANDARD-OBJECT-MAKER PERSISTENT-CLASS)) ..)
 27: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE= (T
STANDARD-OBJECT-LIST-INSPECTOR STANDARD-OBJECT-MAKER STANDARD-CLASS))
..)
 28: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE= (T
STANDARD-OBJECT-LIST-INSPECTOR STANDARD-OBJECT-MAKER
PERSISTENT-CLASS)) ..)
 29: (HU.DWIM.WUI::CALL-WITH-INTERACTION #<CLOSURE (LABELS
HU.DWIM.WUI::WITH-INTERACTION-BODY) {1077ECAD}>
#<STANDARD-OBJECT-MAKER>)
 30: ((LABELS CL-RDBMS::WITH-TRANSACTION*-BODY))
 31: (DWIM-META-MODEL::CALL-WITH-RELOADED-AUTHENTICATED-SESSION
#<CLOSURE (FLET CALL-NEXT-METHOD) {10757225}>)
 32: (CL-RDBMS::CALL-WITH-TRANSACTION* #<CLOSURE (LABELS
CL-RDBMS::WITH-TRANSACTION*-BODY) {107426DD}>)[:EXTERNAL]
 33: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE=
:AROUND (T RECURSION-POINT-COMPONENT STANDARD-OBJECT-MAKER
PERSISTENT-CLASS)) ..)
 34: (EXECUTE-CREATE-INSTANCE #<unavailable lambda list>)[:EXTERNAL]
 35: ((SB-PCL::FAST-METHOD CALL-ACTION :AROUND (T T T T)) ..)
 36: ((SB-PCL::FAST-METHOD CALL-ACTION :AROUND (T T T HU.DWIM.WUI::ACTION)) ..)
 37: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 38: ((SB-PCL::FAST-METHOD CALL-IN-COMPONENT-ENVIRONMENT
(TABLE-COMPONENT T)) ..)
 39: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 40: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 41: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 42: ((LABELS CL-PEREC::WITH-COMPILED-QUERY-CACHE-BODY))
 43: (CL-PEREC::CALL-WITH-COMPILED-QUERY-CACHE #<CLOSURE (LABELS
CL-PEREC::WITH-COMPILED-QUERY-CACHE-BODY) {1070431D}> #<HASH-TABLE
:TEST EQUAL :COUNT 2 {D57C0F1}>)
 44: ((LABELS CL-RDBMS::WITH-TRANSACTION*-BODY))
 45: (DWIM-META-MODEL::CALL-WITH-RELOADED-AUTHENTICATED-SESSION
#<CLOSURE (FLET CALL-NEXT-METHOD) {10703E8D}>)
 46: (CL-RDBMS::CALL-WITH-TRANSACTION* #<CLOSURE (LABELS
CL-RDBMS::WITH-TRANSACTION*-BODY) {10700375}>)[:EXTERNAL]
 47: ((SB-PCL::FAST-METHOD
DWIM-PRESENTATION::CALL-IN-DWIM-PRESENTATION-ENVIRONMENT
(DWIM-WUI-APPLICATION T T T)) ..)
 48: ((SB-PCL::FAST-METHOD
DWIM-PRESENTATION::CALL-IN-DWIM-PRESENTATION-ENVIRONMENT :AROUND (T T
T T)) ..)
 49: (HU.DWIM.WUI::CALL-WITH-ACTION-LOGIC #<unavailable lambda list>)
 50: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT
(DWIM-WUI-APPLICATION DWIM-PRESENTATION::DWIM-WUI-SESSION T)) ..)
 51: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT :AROUND
(APPLICATION-WITH-DOJO-SUPPORT T T)) ..)
 52: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT :AROUND
(APPLICATION-WITH-HOME-PACKAGE T T)) ..)
 53: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]291))
 54: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
 55: (HU.DWIM.WUI::CALL-WITH-LOCK-HELD-ON-SESSION ..)
 56: (HU.DWIM.WUI::CALL-WITH-SESSION-LOGIC #<unavailable lambda
list>)[:EXTERNAL]
 57: (HU.DWIM.WUI::ITERATE-BROKERS-FOR-RESPONSE #<unavailable lambda list>)
 58: (HU.DWIM.WUI::QUERY-ENTRY-POINTS-FOR-RESPONSE #<unavailable lambda list>)
 59: ((SB-PCL::FAST-METHOD HANDLE-REQUEST (HU.DWIM.WUI:APPLICATION T))
#<unavailable argument> #<unavailable argument>
#<MY-DWIM-TEST-APPLICATION "/" 0 {B855415}> #<REQUEST {106F6AD1}>)
 --more--

I corrected it with the next patch

hunk ./src/component/primitive-maker.lisp 52
         (bind ((checked (when (and has-initform?
                                    (eq initform #t))
                           "checked")))
-          <input (:type "checkbox" :checked ,checked)>)
-        <select ()
+          <input (:type "checkbox" :checked ,checked :name ,(id-of
client-state-sink))>)
+	<select (:name ,(id-of client-state-sink))[_^I_][_$_]
           ;; TODO: add error marker when no initform and default
value is selected
           ,(bind ((selected (unless (and has-initform?
                                          constant-initform?)

I think that this is not the best option may make sense to rewrite the
boolean-maker is similar to boolean-inspector? I could do it.

3. The following error that I received while save:

The assertion (= 1 COUNT) failed.
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [CONTINUE] Continue processing the error (and probably send an error page)
 1: [CONTINUE] Retry assertion.
 2: [TERMINATE-TRANSACTION] return (values) from the WITH-TRANSACTION
block executing the current terminal action :MARKED-FOR-ROLLBACK-ONLY
 3: [COMMIT-TRANSACTION] mark transaction for commit only and return
(values) from the WITH-TRANSACTION block
 4: [ROLLBACK-TRANSACTION] mark transaction for rollback only and
return (values) from the WITH-TRANSACTION block
 5: [RESTART-TRANSACTION] rollback the transaction by unwinding the
stack and restart the WITH-TRANSACTION block in a new database
transaction
 --more--

Backtrace:
  0: ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN)) #<FUNCTION (LAMBDA #)
{BAC5A05}>)
  1: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR {C53DA31}>)
  2: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {C549D9D}>)
  3: (SWANK::CALL-WITH-BINDINGS ..)
  4: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {CAAA341}>
#<CLOSURE (LAMBDA #) {C549D9D}>)
  5: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR {C53DA31}>)
  6: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {C549D7D}>)
  7: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR {C53DA31}>
#<unavailable argument>)
  8: (HU.DWIM.WUI::INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR {C53DA31}>)[:EXTERNAL]
  9: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.)) #<unavailable argument> #<unavailable argument>
#<SIMPLE-ERROR {C53DA31}> #<MY-DWIM-TEST-APPLICATION "/" 0 {B713CFD}>)
 10: ((SB-PCL::FAST-METHOD HANDLE-TOPLEVEL-CONDITION :AROUND (T T)) ..)
 11: ((FLET HU.DWIM.WUI::HANDLE-REQUEST-ERROR) #<SIMPLE-ERROR {C53DA31}>)
 12: ((LABELS HU.DWIM.WUI::LEVEL-1-ERROR-HANDLER) #<SIMPLE-ERROR {C53DA31}>)
 13: (SIGNAL #<SIMPLE-ERROR {C53DA31}>)[:EXTERNAL]
 14: (ERROR #<SIMPLE-ERROR {C53DA31}>)[:EXTERNAL]
 15: (SB-KERNEL:ASSERT-ERROR (= 1 COUNT) NIL NIL)[:EXTERNAL]
 16: ((SB-PCL::FAST-METHOD CL-PEREC::STORE-SLOT (PERSISTENT-CLASS
PERSISTENT-OBJECT PERSISTENT-EFFECTIVE-SLOT-DEFINITION T)) ..)
 17: ((SB-PCL::FAST-METHOD (SETF SLOT-VALUE-USING-CLASS) (T
PERSISTENT-CLASS PERSISTENT-OBJECT
PERSISTENT-EFFECTIVE-SLOT-DEFINITION)) ..)
 18: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3.)) ..)
 19: (SB-PCL::SET-SLOT-VALUE #<USER :persistent #t 160>
DWIM-META-MODEL::CREATED-IN #<AUTHENTICATED-SESSION :persistent #t 158
of #<USER :persistent #t 101>>)
 20: (TOUCH-INSTANCE #<USER :persistent #t 160> T)
 21: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.)) #<unavailable argument> #<unavailable argument>
#<ENTITY USER> #<USER :persistent #t 160>)
 22: ((SB-PCL::FAST-METHOD INITIALIZE-INSTANCE :AROUND
(PERSISTENT-OBJECT)) ..)[:EXTERNAL]
 23: ((SB-PCL::FAST-METHOD MAKE-INSTANCE (CLASS)) #<unavailable
argument> #<unavailable argument> #<ENTITY USER>)[:EXTERNAL]
 24: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.))
..)
 25: ((SB-PCL::FAST-METHOD MAKE-INSTANCE-USING-INITARGS
(STANDARD-OBJECT-MAKER PERSISTENT-CLASS PERSISTENT-OBJECT)) ..)
 26: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE= (T
RECURSION-POINT-COMPONENT STANDARD-OBJECT-MAKER PERSISTENT-CLASS)) ..)
 27: (HU.DWIM.WUI::CALL-WITH-INTERACTION #<CLOSURE (LABELS
HU.DWIM.WUI::WITH-INTERACTION-BODY) {B8018C5}>
#<STANDARD-OBJECT-MAKER>)
 28: ((LABELS CL-RDBMS::WITH-TRANSACTION*-BODY))
 29: (DWIM-META-MODEL::CALL-WITH-RELOADED-AUTHENTICATED-SESSION
#<CLOSURE (FLET CALL-NEXT-METHOD) {B8004F5}>)
 30: (CL-RDBMS::CALL-WITH-TRANSACTION* #<CLOSURE (LABELS
CL-RDBMS::WITH-TRANSACTION*-BODY) {B7FB9D5}>)[:EXTERNAL]
 31: ((SB-PCL::FAST-METHOD
HU.DWIM.WUI::=LAYERED-FUNCTION-DEFINER-FOR-EXECUTE-CREATE-INSTANCE=
:AROUND (T RECURSION-POINT-COMPONENT STANDARD-OBJECT-MAKER
PERSISTENT-CLASS)) ..)
 32: (EXECUTE-CREATE-INSTANCE #<unavailable lambda list>)[:EXTERNAL]
 33: ((SB-PCL::FAST-METHOD CALL-ACTION :AROUND (T T T T)) ..)
 34: ((SB-PCL::FAST-METHOD CALL-ACTION :AROUND (T T T HU.DWIM.WUI::ACTION)) ..)
 35: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 36: (FUNCALL-WITH-LAYER-CONTEXT ..)[:EXTERNAL]
 37: ((LABELS CL-PEREC::WITH-COMPILED-QUERY-CACHE-BODY))
 38: (CL-PEREC::CALL-WITH-COMPILED-QUERY-CACHE #<CLOSURE (LABELS
CL-PEREC::WITH-COMPILED-QUERY-CACHE-BODY) {B7F79CD}> #<HASH-TABLE
:TEST EQUAL :COUNT 0 {C7F7AE9}>)
 39: ((LABELS CL-RDBMS::WITH-TRANSACTION*-BODY))
 40: (DWIM-META-MODEL::CALL-WITH-RELOADED-AUTHENTICATED-SESSION
#<CLOSURE (FLET CALL-NEXT-METHOD) {B7F4AD5}>)
 41: (CL-RDBMS::CALL-WITH-TRANSACTION* #<CLOSURE (LABELS
CL-RDBMS::WITH-TRANSACTION*-BODY) {B7F0FBD}>)[:EXTERNAL]
 42: ((SB-PCL::FAST-METHOD
DWIM-PRESENTATION::CALL-IN-DWIM-PRESENTATION-ENVIRONMENT
(DWIM-WUI-APPLICATION T T T)) ..)
 43: ((SB-PCL::FAST-METHOD
DWIM-PRESENTATION::CALL-IN-DWIM-PRESENTATION-ENVIRONMENT :AROUND (T T
T T)) ..)
 44: (HU.DWIM.WUI::CALL-WITH-ACTION-LOGIC #<unavailable lambda list>)
 45: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT
(DWIM-WUI-APPLICATION DWIM-PRESENTATION::DWIM-WUI-SESSION T)) ..)
 46: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT :AROUND
(APPLICATION-WITH-DOJO-SUPPORT T T)) ..)
 47: ((SB-PCL::FAST-METHOD CALL-IN-APPLICATION-ENVIRONMENT :AROUND
(APPLICATION-WITH-HOME-PACKAGE T T)) ..)
 48: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]291))
 49: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
 50: (HU.DWIM.WUI::CALL-WITH-LOCK-HELD-ON-SESSION ..)
 51: (HU.DWIM.WUI::CALL-WITH-SESSION-LOGIC #<unavailable lambda
list>)[:EXTERNAL]
 52: (HU.DWIM.WUI::ITERATE-BROKERS-FOR-RESPONSE #<unavailable lambda list>)
 53: (HU.DWIM.WUI::QUERY-ENTRY-POINTS-FOR-RESPONSE #<unavailable lambda list>)
 54: ((SB-PCL::FAST-METHOD HANDLE-REQUEST (HU.DWIM.WUI:APPLICATION T))
#<unavailable argument> #<unavailable argument>
#<MY-DWIM-TEST-APPLICATION "/" 0 {B713CFD}> #<REQUEST {B6B3AD1}>)
 55: ((SB-PCL::FAST-METHOD HANDLE-REQUEST (DWIM-WUI-APPLICATION T)) ..)
 56: (HU.DWIM.WUI::APPLICATION-HANDLER #<unavailable lambda list>)

as I understand it is linked with the following code

(def method initialize-instance :around ((instance persistent-object)
&rest args &key persistent)
  (bind ((class (class-of instance)))
    (when persistent
      (ensure-exported class))
    (prog1 (apply #'call-next-method instance :persistent #f args)
      (when (eq persistent #t)
        (make-persistent instance)))))

which call

(def method make-persistent-using-class :after (class (instance audited-object))
  (when (and *audit-changes*
             (created-p instance))
    (touch-instance instance #t)))

before insertion of the object in table and thereby causes error. How
can I correct this behavior?




More information about the cl-dwim-devel mailing list