Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

Unhelpful ambiguous component error

#66

The attached experiment has a variable and a timer that are both named "ignore_timer". When you try to load the experiment, the parser correctly raises an "ambiguously referenced component" error. However, the error message gives no indication as to which components are ambiguous:

ERROR: An attempt was made to access an ambiguously referenced component.  Please ensure that all object tag names are unique: ()

In order to help the user fix the problem, the error message should indicate which components are at fault. (I believe the core is already trying to do this, but for some reason it's not working.)

Reported by Christopher Stawarz · January 27th, 2011 @ 04:55 PM

State: resolved
Milestone: none
Assigned to: David Cox David Cox

Activity

  1. Christopher Stawarz
  2. David Cox
    David Cox
    • Assigned user set to David Cox

    Obviously, that exception normally does print out some indication of what component was at fault (and that's what that empty "()" appears to be).

    In this case, the tag field in the component isn't getting set by either offending party (a variable and a timer).

    The fix is a bandaid deep in the ugly bowels of the whole VariablesProperties mess. We should refactor this entirely, as well as make better use of the AmbiguousReference exception's ability to register all offending components, but for now, this quick fix will allow users to at least have a fighting chance of figuring out where the problem is.

    I'll open new tickets for the more extensive fixes; this will likely interact with larger parser / plugin / component refactoring.

    February 2nd, 2011 @ 12:31 PM

  3. David Cox
    David Cox
    • State changed from new to resolved

    Immediate problem resolved in commit:0260b1e8

    February 2nd, 2011 @ 12:32 PM

  4. David Cox

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.