Question about bug lifecycle - bugzilla

I need to calculate how much time was spent on a bug. I saw a bug lifecycle diagram, but it's not clear when someone starts working on the bug: after UNCONFIRMED or NEW or when ASSIGNED. Any ideas?

Usually at ASSIGNED. Although somebody has to do some work in order to move it from UNCONFIRMED to NEW--usually a "triager" who may be the developer or a QA person (or may even be a separate person).
In Bugzilla 4.0 we changed the default name of the ASSIGNED status to IN_PROGRESS which is a bit clearer.
-Max

Related

CheckBox.setToggleButton doesn't exist

i have been trying a code found here to add rating bar but i got an error on
cb.setToggleButton(
where the "setToggleButton" method didn't or doesn't exist anymore
any idea if it has been update cause the post i tagged was back from 2014
That method doesn't exist, it should be setToggle(true). Notice in the linked post it just said setToggleButton( without even a closing bracket. Since this was written a while back I'm guessing I just switched a desktop to check the method name and got distracted then forgot to fix that. Hazards of blind coding without the comfort of an IDE.
#devcrp actually wrote the correct answer before but unfortunately he deleted it. If he undeletes it his answer should be accepted.

Did Salesforce.com's Winter '13 version change/break Set.contains() method?

We have our sandbox upgraded to Winter '13, but our production environment is still on the old version. The following code prints "false" on our sandbox, but "true" on production. I can't seem to find mention of this on line, but it looks like they work differently!
Set<Id> x = new Set<Id>{
'012A0000000qv2wIAA'
,'012A0000000qv2xIAA'
,'012A0000000qv2yIAA'
,'012A0000000qv2zIAA'
};
System.debug(x.contains('012A0000000qv2z'));
Note that the Set contains 18-character IDs, and we're asking if it .contains() a 15-character ID. I don't mind it working one way or the other; just weird that it's behaving differently.
EDIT: Just noticed that if I explicitly cast the String to an ID, the behavior becomes consistent across environments:
System.debug(x.contains((Id)('012A0000000qv2z')));
So maybe Apex has changed the type-promotion rules in the new release?
I took a look into this. This is an unintentional change to the type manipulation logic in the new implementation of Set in Apex (the new impl supports user defined types, hooray!). I've filed a bug and we'll address this in a future patch (I'm not allowed to make promises as to when). Thanks for pointing out this issue and giving such a concise repro.
Greg Fee

How to model the state "needs discussion" for a bug/feature in Bugzilla 3.0.x

In our group, we have to model the state "needs discussion" for Bugzilla.
Therefore, a custom RESOLVED - to be discussed status was introduced. The appropriate group of people searches for issues that have this sort of "resolution" status and discusses these offline.
In my opinion, this is not the proper way as the bug/feature clearly is not resolved if there still is need for discussion. This is also reflected in the standard life cycle of a bug. It is sort of misleading, as "needs discussion" items show up in your list of resolved bugs.
One way I can think of, would be to make a sort of "virtual user", representing the group that has to be involved in the discussion. This has the advantage, that one can search for the bugs easily. One could also setup a mailing list to notify the users.
I wonder how one can appropriately model this needs discussion state of a bug in Bugzilla 3.0.x. (And: what is the Mozilla-way solution?)
As with any software system there are a multitude of ways to address your need.
Before you start with mechanism it would be good to think about requirements.
Do you want bugs the need discussion to be counted as "open" still, or do you consider them "resolved". Do you even collect those types of metrics?
The requirements I derive from your question are
Don't want to see them in normal searches
Do want to be able to see them when looking explicitely
Need to be able to finalize the discussion, and "bring the bug back" to normal
Would like to notify people that there is a discussion to be held
Would like the bugs to not look like they are resolved
If those are really the requirements, and you don't care that "for discussion" bugs are showing up as resolved for metrics etc, then I think what you have is probably good enough, except for point 5.
Some other alternatives
Create a "Discussion" product (or component).
Create a custom lifecycle (I wouldn't recommend that though).
Assign to the "Discuss-me" group/user
Use a "super bug", and mark the bugs a blocking the "Discussion super bug"
Create a "discuss this issue" bug, and mark the bug as blocked by the discussion (this reflects reality the closest, but that doesn't make it the best option).
But, as I say, think about what you're trying to achieve first, and then choose the mechanism based on that. There are different trade-offs around the amount of bug-fiddling you have to do to make them all work :-).

How do the versions of Guava work?

I would like to use Guava in a project, but my PM doesn't like the "r05" suffix, saying that it looks like it's not stable. In fact, the part I need is only the Google-Collections 1.0 which is now deprecated (my PM doesn't like that word either).
So I don't really get the versioning of Guava/Google-Collections.
I'm currently doing the development with GC1.0, but if possible I'll switch to a more recent and stable version.
You can tell him you have our permission to think of it as 5.0 instead of 05 if that helps.
All our releases will look like guava-r## ... Unless we actually release monthly for 8 1/3 years, in which case we'll get to guava-r100 and really screw up the whole lexicographical order thing.
What exactly does your PM mean by "not stable"? It's not a great idea to assume anything positive or negative from a version number. Tell us what kind of assurances he's looking for and we'll try to answer for those. "Stable" doesn't mean much (after all, the deprecated library is as stable as it gets, because we're never going to change it!).
(Note that questions like this, which are not "how-do-I" or "why-didn't-it" questions, are welcome on our mailing list (linked from our project page at http://guava-libraries.googlecode.com), while I'm actually not sure whether the stackoverflow community considers them entirely appropriate.)

Problem with performance counters on Vista

I'm running into a strange issue on Vista with the Performance monitoring API. I'm currently using code that worked fine on XP/2k, based around PdhGetFormattedCounterValue(). I start out using PdhExpandWildCardPath to expand the counters (I'm interested in overall network statistics), the counters I'm looking at are:
\\Network Interface(*)\\Bytes Received/sec
\\Network Interface(*)\\Bytes Sent/sec
\\Processor(_Total)\\% Processor Time
The problem is that on their first call they return PDH_INVALID_DATA, I don't think this is a problem, since if I query it again I will start getting data without the error. The problem is this - while the processor time is worked exactly as expected, neither of the network interface counters are returning anything - just 0 all the time. I verified using Perfmon that they are reporting data normally, so I'm at a loss as to what might be the issue. I caught this at MS:
http://support.microsoft.com/?scid=kb%3Ben-us%3B287159&x=11&y=9
But I'm not interested in multi-language for my task, so I don't think this is relevant. I will see if I can come up with some basic code showing exactly what I'm doing, but nothing is returning anything strange, and it worked on XP/2k, so I suspect something changed under the hood. Thanks!
It turns out the issue was that the network interfaces are both wildcards, whereas the Processor one is actually already rolled up by the performance monitoring. What I didn't realize was that it PdhExpandWildCardPath didn't return something directly usable by PdhAddCounter. By this I mean that if ExpandWildCard returns 3 expanded matches, they come back as a null separated strings - I understood this, but I had assumed that AddCounter would be effectively create a counter containing all three. Nope, reality is I needed to break up each path and request it individually from AddCounter, then roll up the results manually when I get them.
Hopefully this helps someone else to avoid the same mistake I made with less frustration. ;)

Resources