site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com Thread-index: AcbdiGBxnyCyAEl7EduHzAAKlbs3ig== Thread-topic: Infinite loop between <choice> start_* attributes and mixed state aborted. User-agent: Microsoft-Entourage/11.2.5.060620 Something like this might work. Mentions the problem and the fix. "Infinite loop between start_* attributes aborted. Avoid nesting dynamic functions in start_* attributes to fix." It isn't perfect either, but hopefully a step in the right direction. Sean -- Sean P. Kane Macintosh Client Engineering Support | Nike, Inc. Affiliated Computer Services | Beaverton, Oregon
From: Peter Bierman <bierman@apple.com> Date: Wed, 20 Sep 2006 14:11:31 -0700 To: "Sean P. Kane" <sean.kane@nike.com> Cc: <installer-dev@lists.apple.com> Subject: Re: Infinite loop between <choice> start_* attributes and mixed state aborted.
Any suggestions for how I could phrase the warning more clearly?
-pmb
At 1:46 PM -0700 9/20/06, Sean P. Kane wrote:
I had vaguely come to that conclusion but your explanation definitely made it all that clearer. I have re-arranged my packages in the distribution package to allow me to make the necessary checks I need. Hopefully this will work out.
Thanks, Sean
-- Sean P. Kane Macintosh Client Engineering Support | Nike, Inc. Affiliated Computer Services | Beaverton, Oregon
From: Peter Bierman <bierman@apple.com> Date: Wed, 20 Sep 2006 11:41:39 -0700 To: "Kane, Sean (ACS-ETW)" <Sean.Kane@nike.com> Cc: <installer-dev@lists.apple.com> Subject: Re: Infinite loop between <choice> start_* attributes and mixed state aborted.
At 10:33 AM -0700 9/20/06, Kane, Sean (ACS-ETW) wrote:
I am getting these errors in the install.log on a distribution package that I am trying to create:
Package Authoring Error: Infinite loop between <choice> start_* attributes and mixed state aborted.
They don't seem to affect anything, but I don't really understand what is causing them. I'm assuming my logic somewhere is broken. Can anyone out there explain these to me?
Sure!
The installer is evaluating the JavaScript code that you've attached to your various <choice> elements.
The installer is also looking at the selected state of nested choices, and using those values to determine if a parent choice should show an "X" or a "-".
If you override the 'selected' attribute of a choice that has other choices as children, you can get into a situation where you turn the parent 'off', but turn a child 'on', and then the installer can't figure out what state the parent should actually be in.
Since the attribute engine works by evaluating choice attributes in a loop until they stop changing, this situation creates an infinite loop, which the installer detects and logs.
The solution is simple. Don't attach dynamic scripts to both parents and children choices. One or the other should suffice. Usually you want to control just the children and let the installer figure out the mixed state of the parents on it's own.
-pmb
_______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com