• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: "Cannot obtain globalId for an object which..."
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "Cannot obtain globalId for an object which..."


  • Subject: Re: "Cannot obtain globalId for an object which..."
  • From: Chuck Hill <email@hidden>
  • Date: Sat, 15 Nov 2003 12:00:30 -0800

The "access with no lock" warning is not always right.  The first time a
EODatabaseContext connects to a database an "access with no lock" warning
is output from the EODatabaseContext constructor.  This message can be
safely ignored.   If the trace contains EODatabaseContext.<init> then you
can ignore it.

One thing to try is to log out the "id" (e.g. the EOEditingContext@3273cc
part) of each editing context when it is created
NSLog.out.appendln("X created ec " + editingContext());

That way you have a better chance of tracking down which ones are involved in
object's editingContext: com.webobjects.eocontrol.EOEditingContext@3273cc,
databaseContext's active editingContext:
com.webobjects.eocontrol.EOEditingContext@53ab04

That may provide the essential clue.

I also trust that you are locking the ec in your long response page.


Chuck



At 08:23 PM 15/11/2003 +0100, Kaj Hejer wrote:
>At 09:49 -0800 15-11-03, Chuck Hill wrote:
>>Looking at your code:
>>
>>args = new NSArray(new Object[] { this });
>>EOQualifier inviterteQual =
>>    EOQualifier.qualifierWithQualifierFormat("invitertePersoner = %@",
args);
>>
>>fs = new EOFetchSpecification("Skjema", inviterteQual, null);
>>NSArray skjemaerInvitert =
editingContext().objectsWithFetchSpecification(fs);
>>
>>I can't see how 'this' could possibly NOT be in 'editingContext()'.  This
>>isn't the notification problem that I originally thought.  That trace from
>>that code looks like an EOF bug, at least after the single cup of coffee
>>I've had so far.  :-)
>>
>>Are you using the shared editing context?  Are you accessing the
>>EODatabaseContext directly anywhere?  Are any other exceptions raised
>>before this?  I'm just wondering if something else is using the
>>EODatabaseContext without locking it, or has somehow left it in a dirty
state.
>
>
>Hi!
>
>Thank you for answering and for looking at my code! :)
>
>We don't use sharedEditingContext. In the constructor in Session.java we have
>
>     defaultEditingContext().setSharedEditingContext(null);
>
>
>I have now browsed through the logs for this application again. I
>have found a few more of the same "Cannot obtain globalId..."
>exceptions.
>
>Before some of them I see a "access with no lock" warning which we
>get because we use the following code:
>
>         NSLog.setAllowedDebugLevel(NSLog.DebugLevelInformational);
>         NSLog.allowDebugLoggingForGroups(NSLog.DebugGroupMultithreading);
>         setAllowsConcurrentRequestHandling(true);
>
>This was the case for the one I included in my previous email. Why I
>get the "access with no lock" is another matter. That might be a bug
>in my code. I will try to find the reason for these warnings.
>
>I have pasted our childEC and locking related code into
>http://folk.uio.no/kajh/tmp/locking-20031115.txt
>
>We only use session.defaultEditingContext and a childEC of this with
>only one exception: In one of our components which do a query that
>take a while (the component is a WOLongResponsepage) we create a new
>EOObjectStoreCoordinator so we don't block the database access for
>the rest of the app. We use the following code for this:
>
>      LockErrorScreamerEditingContext editingContext =
>        new LockErrorScreamerEditingContext(new EOObjectStoreCoordinator());
>
>Since all objectStoreCoordinators share the same EODatabaseContext
>maybe this component can create some trouble that might lead to the
>"Cannot obtain globalId..." exception both for the session where this
>trouble happends and for other sessions.
>
>
>One of the other methods (other that one in
>http://folk.uio.no/kajh/tmp/bug20031114.txt) that sometimes give the
>Cannot obtain globalId..." exception is the following:
>
>     public boolean hasRedaksjoner() {
>         return (getRedaksjoner() != null && getRedaksjoner().count() > 0);
>     }
>
>and getRedaksjoner() looks as follows:
>
>     public NSArray getRedaksjoner() {
>         return (NSArray) storedValueForKey("redaksjoner");
>     }
>
>The stacktrace is available at http://folk.uio.no/kajh/tmp/bug20031114-2.txt
>
>The day before this exception I see a "access with no lock" warning
>in the log, so maybe after that  warning the EODatabaseContext is
>left in a dirty state?
>
>
>-Kaj :)
>

--

Chuck Hill                                 email@hidden
Global Village Consulting Inc.             http://www.global-village.net
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: "Cannot obtain globalId for an object which..."
      • From: Kaj Hejer <email@hidden>
References: 
 >Re: "Cannot obtain globalId for an object which..." (From: Chuck Hill <email@hidden>)
 >Re: "Cannot obtain globalId for an object which..." (From: Kaj Hejer <email@hidden>)

  • Prev by Date: Re: [newbie]request in a direct action
  • Next by Date: Subclassing WOImage
  • Previous by thread: Re: "Cannot obtain globalId for an object which..."
  • Next by thread: Re: "Cannot obtain globalId for an object which..."
  • Index(es):
    • Date
    • Thread