WOKeyPathAssociation.m:937: A backsync raises the exception when there is no accessor

View: New views
2 Messages — Rating Filter:   Alert me  

WOKeyPathAssociation.m:937: A backsync raises the exception when there is no accessor

by Sergey Golovin-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi!

There is a chunk of code:
-------------------------------------------------------------------b
 // we do not check the return value, because a set is allowed to
fail
 // (in SOPE ;-) [if there is no accessor, a backsync is just
ignored]
#if 1
     _setValue(self, _value, _component);
#else
 if (!_setValue(self, _value, _component)) {
   [self logWithFormat:@"could not set value %@ component %@",
         _value, _component];
 }
#endif
-------------------------------------------------------------------e

It doesn't work with gnustep (i believe (according to the comment) it
is assumed lF) and raises exception when i want to step in a project:
-------------------------------------------------------------------b
Application Server caught exception:



 session: 1818181801486B551B

 element: 005486b5520097e3668.0.17.1.3.b.attributes.1

 context: <0x0x97e3668[WOContext]: 005486b5520097e3668
app=ogo-webui-1.1 sn=1818181801486B551B
eid=005486b5520097e3668.0.17.1.3.b.attributes.1 rqeid=(nil)>

 request: <WORequest[0x0x9846c00]: method=GET
uri=/ogo-webui-1.woa/x/activate?woinst=6168&oid=10501&wosid=1818181801486B551B
app=ogo-webui-1 rqKey=x rqPath=activate>



 class:   NSException

 name:    NSUnknownKeyException

 reason:  Unable to set nil value for key

 info:

   {NSTargetObjectUserInfoKey = "<EOGenericRecord: description
Project attributes={dbStatus = updated; endDate = \"2028-12-30
23:00:00 +0000\"; isFake = 0; kind = \"<null>\"; name =
\"\\U041F\\U0440\\U043E\\U0435\\U043A\\U0442\"; number = P10501;
objectVersion = 3; ownerId = 10111; projectId = 10501; startDate =
\"2008-06-30 22:00:00 +0000\"; status = \"<null>\"; teamId =
\"<null>\"; url = \"skyrix://SERVER0/\"; }>"; NSUnknownUserInfoKey =
object; }
-------------------------------------------------------------------e

I'm not along having to deal with the problem:

http://mail.opengroupware.org/pipermail/gnustep-port/2007-November/000116.html

I managed to see the project with the following test case:
-------------------------------------------------------------------b
 // we do not check the return value, because a set is allowed to
fail
 // (in SOPE ;-) [if there is no accessor, a backsync is just
ignored]
#if 1
 NS_DURING {
   _setValue(self, _value, _component);
 }
 NS_HANDLER {
   [self logWithFormat:@"could not set value %@ component %@",
         _value, _component];
 }
 NS_ENDHANDLER;
#else
 if (!_setValue(self, _value, _component)) {
   [self logWithFormat:@"could not set value %@ component %@",
         _value, _component];
 }
#endif
-------------------------------------------------------------------e

Should i go to the bugzilla with that? (Or i'm wrong?)

--
Sergey Golovin
--
OpenGroupware.org Developer
developer@...
http://mail.opengroupware.org/mailman/listinfo/developer

Re: WOKeyPathAssociation.m:937: A backsync raises the exception when there is no accessor

by Helge Hess :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ah,

I forgot. When you debug exceptions, always include the GDB backtrace  
(break -raise, bt).

In the specific case we would probably need to add a -
handleQueryForUnboundKey: method.

Its a good idea to document the issue in Bugzilla. (and use that entry  
to attach patches etc)

Thanks,
   Helge

On 02.07.2008, at 14:43, Sergey Golovin wrote:

> Hi!
>
> There is a chunk of code:
> -------------------------------------------------------------------b
> // we do not check the return value, because a set is allowed to
> fail
> // (in SOPE ;-) [if there is no accessor, a backsync is just
> ignored]
> #if 1
>     _setValue(self, _value, _component);
> #else
> if (!_setValue(self, _value, _component)) {
>   [self logWithFormat:@"could not set value %@ component %@",
>         _value, _component];
> }
> #endif
> -------------------------------------------------------------------e
>
> It doesn't work with gnustep (i believe (according to the comment) it
> is assumed lF) and raises exception when i want to step in a project:
> -------------------------------------------------------------------b
> Application Server caught exception:
>
>
>
> session: 1818181801486B551B
>
> element: 005486b5520097e3668.0.17.1.3.b.attributes.1
>
> context: <0x0x97e3668[WOContext]: 005486b5520097e3668
> app=ogo-webui-1.1 sn=1818181801486B551B
> eid=005486b5520097e3668.0.17.1.3.b.attributes.1 rqeid=(nil)>
>
> request: <WORequest[0x0x9846c00]: method=GET
> uri=/ogo-webui-1.woa/x/activate?
> woinst=6168&oid=10501&wosid=1818181801486B551B
> app=ogo-webui-1 rqKey=x rqPath=activate>
>
>
>
> class:   NSException
>
> name:    NSUnknownKeyException
>
> reason:  Unable to set nil value for key
>
> info:
>
>   {NSTargetObjectUserInfoKey = "<EOGenericRecord: description
> Project attributes={dbStatus = updated; endDate = \"2028-12-30
> 23:00:00 +0000\"; isFake = 0; kind = \"<null>\"; name =
> \"\\U041F\\U0440\\U043E\\U0435\\U043A\\U0442\"; number = P10501;
> objectVersion = 3; ownerId = 10111; projectId = 10501; startDate =
> \"2008-06-30 22:00:00 +0000\"; status = \"<null>\"; teamId =
> \"<null>\"; url = \"skyrix://SERVER0/\"; }>"; NSUnknownUserInfoKey =
> object; }
> -------------------------------------------------------------------e
>
> I'm not along having to deal with the problem:
>
> http://mail.opengroupware.org/pipermail/gnustep-port/2007-November/000116.html
>
> I managed to see the project with the following test case:
> -------------------------------------------------------------------b
> // we do not check the return value, because a set is allowed to
> fail
> // (in SOPE ;-) [if there is no accessor, a backsync is just
> ignored]
> #if 1
> NS_DURING {
>   _setValue(self, _value, _component);
> }
> NS_HANDLER {
>   [self logWithFormat:@"could not set value %@ component %@",
>         _value, _component];
> }
> NS_ENDHANDLER;
> #else
> if (!_setValue(self, _value, _component)) {
>   [self logWithFormat:@"could not set value %@ component %@",
>         _value, _component];
> }
> #endif
> -------------------------------------------------------------------e
>
> Should i go to the bugzilla with that? (Or i'm wrong?)
>
> --
> Sergey Golovin
> --
> OpenGroupware.org Developer
> developer@...
> http://mail.opengroupware.org/mailman/listinfo/developer

--
OpenGroupware.org Developer
developer@...
http://mail.opengroupware.org/mailman/listinfo/developer
LightInTheBox - Buy quality products at wholesale price