<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>Bug 125527 - bugzilla refresh incorrect for new reports and newly opened hits</title>




    

    <script type="text/javascript">
  <!--
  
  function initHelp() {}
  // -->
  </script>

    <link href="skins/standard/global.css" rel="stylesheet" type="text/css">
    <link href="skins/custom/global.css" rel="stylesheet" type="text/css">



    

  </head>



  <body onload=""
        class="bugs-eclipse-org-bugs bz_bug bz_status_RESOLVED bz_component_Bugzilla bz_bug_125527">


<!-- 1.0@bugzilla.org -->




<table width="100%" border="0" cellpadding="0" cellspacing="0">
	<tr style="background-image: url(/bugs/header_bg.gif);">
		<td>
			<a href="http://www.eclipse.org/"><img src="/bugs/header_logo.gif" width="164" height="68" border="0" /></a>
		</td>
		<td align="right" style="color: white; font-family: verdana,arial,helvetica; font-size: 1.25em; font-style: italic;"><b>Eclipse bugs</b></font> <br /><font style="font-size: .5em;">Bugzilla 2.20.1 &#160;</font></td>
	</tr>
</table>

<div id="header">
    <h1>Bugzilla Bug 125527</h1>

    <h2>bugzilla refresh incorrect for new reports and newly opened hits</h2>

    <h3>Last modified: 2006-01-27 21:30:34</h3>
</div>
<i><font color="#777777">First</font></i>
  <i><font color="#777777">Last</font></i>
  <i><font color="#777777">Prev</font></i>
  <i><font color="#777777">Next</font></i>
  &nbsp;&nbsp;
  <i><font color="#777777">No search results available</font></i>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>

<hr>
<script type="text/javascript">
  <!--

  /* Outputs a link to call replyToComment(); used to reduce HTML output */
  function addReplyLink(id) {
      /* XXX this should really be updated to use the DOM Core's
       * createElement, but finding a container isn't trivial.
       */
      document.write('[<a href="#add_comment" onclick="replyToComment(' + 
                     id + ');">reply<' + '/a>]');
  }

  /* Adds the reply text to the `comment' textarea */
  function replyToComment(id) {
      /* pre id="comment_name_N" */
      var text_elem = document.getElementById('comment_text_'+id);
      var text = getText(text_elem);

      /* make sure we split on all newlines -- IE or Moz use \r and \n
       * respectively.
       */
      text = text.split(/\r|\n/);

      var replytext = "";
      for (var i=0; i < text.length; i++) {
          replytext += "> " + text[i] + "\n"; 
      }

      replytext = "(In reply to comment #" + id + ")\n" + replytext + "\n";


      /* <textarea id="comment"> */
      var textarea = document.getElementById('comment');
      textarea.value += replytext;

      textarea.focus();
  }

  if (typeof Node == 'undefined') {
      /* MSIE doesn't define Node, so provide a compatibility object */
      window.Node = {
          TEXT_NODE: 3,
          ENTITY_REFERENCE_NODE: 5
      };
  }

  /* Concatenates all text from element's childNodes. This is used
   * instead of innerHTML because we want the actual text (and
   * innerText is non-standard).
   */
  function getText(element) {
      var child, text = "";
      for (var i=0; i < element.childNodes.length; i++) {
          child = element.childNodes[i];
          var type = child.nodeType;
          if (type == Node.TEXT_NODE || type == Node.ENTITY_REFERENCE_NODE) {
              text += child.nodeValue;
          } else {
              /* recurse into nodes of other types */
              text += getText(child);
          }
      }
      return text;
  }


  //-->
  </script>

<form name="changeform" method="post" action="process_bug.cgi">

  <input type="hidden" name="delta_ts" value="2006-01-27 21:30:34">
  <input type="hidden" name="longdesclength" value="2">
  <input type="hidden" name="id" value="125527">



  <table>

    <tr>
      <td valign="top">
        <table cellspacing="1" cellpadding="1">
  
          <tr>
            <td align="right">
                  <b>[Technology]</b>
              <b>Bug#:</b>
            </td>
            <td>
              <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125527">125527</a>
            </td>
          </tr>

          <tr>
            <td align="right">
              <b><u>P</u>roduct:</b>
            </td><td>
    <label for="product" accesskey="p">
      <select name="product" id="product">
          <option value="AJDT">AJDT
          </option>
          <option value="ALF">ALF
          </option>
          <option value="AspectJ">AspectJ
          </option>
          <option value="BIRT">BIRT
          </option>
          <option value="BPEL">BPEL
          </option>
          <option value="Buckminster">Buckminster
          </option>
          <option value="CDT">CDT
          </option>
          <option value="Community">Community
          </option>
          <option value="Dali">Dali
          </option>
          <option value="Dash">Dash
          </option>
          <option value="Data Tools">Data Tools
          </option>
          <option value="DSDP">DSDP
          </option>
          <option value="ECF">ECF
          </option>
          <option value="EMF">EMF
          </option>
          <option value="EMFT">EMFT
          </option>
          <option value="EPF">EPF
          </option>
          <option value="Equinox">Equinox
          </option>
          <option value="ERCP">ERCP
          </option>
          <option value="GEF">GEF
          </option>
          <option value="GMF">GMF
          </option>
          <option value="GMT">GMT
          </option>
          <option value="Higgins">Higgins
          </option>
          <option value="Hyades">Hyades
          </option>
          <option value="Java Server Faces">Java Server Faces
          </option>
          <option value="JDT">JDT
          </option>
          <option value="JSR220-ORM">JSR220-ORM
          </option>
          <option value="Laszlo">Laszlo
          </option>
          <option value="Lepido">Lepido
          </option>
          <option value="MDDi">MDDi
          </option>
          <option value="MTJ">MTJ
          </option>
          <option value="Mylar" selected>Mylar
          </option>
          <option value="OHF">OHF
          </option>
          <option value="PDE">PDE
          </option>
          <option value="Phoenix">Phoenix
          </option>
          <option value="Photran">Photran
          </option>
          <option value="Platform">Platform
          </option>
          <option value="PTP">PTP
          </option>
          <option value="SOA">SOA
          </option>
          <option value="Target Management">Target Management
          </option>
          <option value="TPTP">TPTP
          </option>
          <option value="UML2">UML2
          </option>
          <option value="VE">VE
          </option>
          <option value="VTP">VTP
          </option>
          <option value="Web Tools">Web Tools
          </option>
          <option value="XSD">XSD
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          

          <tr>
            <td align="right">
              <b>
                <a href="describecomponents.cgi?product=Mylar">
                  Co<u>m</u>ponent</a>:
              </b>
            </td><td>
    <label for="component" accesskey="m">
      <select name="component" id="component">
          <option value="Bugzilla" selected>Bugzilla
          </option>
          <option value="Core">Core
          </option>
          <option value="Doc">Doc
          </option>
          <option value="Java">Java
          </option>
          <option value="Jira">Jira
          </option>
          <option value="Monitor">Monitor
          </option>
          <option value="Tasks">Tasks
          </option>
          <option value="UI">UI
          </option>
          <option value="XML">XML
          </option>
          <option value="Zest">Zest
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          <tr>
            <td align="right">
              <b>
                <a href="page.cgi?id=fields.html#status">Status</a>:
              </b>
            </td>
            <td>RESOLVED</td>
          </tr>

          <tr>
            <td align="right">
              <b>
                <a href="page.cgi?id=fields.html#resolution">Resolution</a>:
              </b>
            </td>
            <td>FIXED
            </td>
          </tr>

          <tr>
            <td align="right">
              <b>
                <a href="page.cgi?id=fields.html#assigned_to">Assigned&nbsp;To</a>:
              </b>
            </td>
            <td>Robert Elves &lt;relves&#64;cs.ubc.ca&gt;</td>
          </tr>

        </table>

      </td>
      <td valign="top">

        <table cellspacing="1" cellpadding="1">

          <tr>
            <td align="right">
              <b><u>H</u>ardware:</b>
            </td><td>
    <label for="rep_platform" accesskey="h">
      <select name="rep_platform" id="rep_platform">
          <option value="All">All
          </option>
          <option value="Macintosh">Macintosh
          </option>
          <option value="Other">Other
          </option>
          <option value="PC" selected>PC
          </option>
          <option value="Power PC">Power PC
          </option>
          <option value="Sun">Sun
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          <tr>
            <td align="right">
              <b><u>O</u>S:</b>
            </td><td>
    <label for="op_sys" accesskey="o">
      <select name="op_sys" id="op_sys">
          <option value="All">All
          </option>
          <option value="AIX Motif">AIX Motif
          </option>
          <option value="HP-UX">HP-UX
          </option>
          <option value="Linux">Linux
          </option>
          <option value="Linux-GTK">Linux-GTK
          </option>
          <option value="Linux-Motif">Linux-Motif
          </option>
          <option value="Mac OS">Mac OS
          </option>
          <option value="MacOS X">MacOS X
          </option>
          <option value="Neutrino">Neutrino
          </option>
          <option value="other">other
          </option>
          <option value="QNX-Photon">QNX-Photon
          </option>
          <option value="Solaris">Solaris
          </option>
          <option value="Solaris-GTK">Solaris-GTK
          </option>
          <option value="Solaris-Motif">Solaris-Motif
          </option>
          <option value="SymbianOS-Series 80">SymbianOS-Series 80
          </option>
          <option value="Unix All">Unix All
          </option>
          <option value="Windows All" selected>Windows All
          </option>
          <option value="Windows 95">Windows 95
          </option>
          <option value="Windows 98">Windows 98
          </option>
          <option value="Windows 2000">Windows 2000
          </option>
          <option value="Windows 2003 Server">Windows 2003 Server
          </option>
          <option value="Windows CE">Windows CE
          </option>
          <option value="Windows ME">Windows ME
          </option>
          <option value="Windows Mobile 2003">Windows Mobile 2003
          </option>
          <option value="Windows NT">Windows NT
          </option>
          <option value="Windows XP">Windows XP
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          <tr>
            <td align="right">
              <b>Version:</b>
            </td><td>
    <label for="version" accesskey="o">
      <select name="version" id="version">
          <option value="0.2">0.2
          </option>
          <option value="0.3">0.3
          </option>
          <option value="0.4">0.4
          </option>
          <option value="unspecified" selected>unspecified
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          <tr>
            <td align="right">
              <b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b>
            </td><td>
    <label for="priority" accesskey="i">
      <select name="priority" id="priority">
          <option value="P1" selected>P1
          </option>
          <option value="P2">P2
          </option>
          <option value="P3">P3
          </option>
          <option value="P4">P4
          </option>
          <option value="P5">P5
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

          <tr>
            <td align="right">
              <b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b>
            </td><td>
    <label for="bug_severity" accesskey="i">
      <select name="bug_severity" id="bug_severity">
          <option value="blocker">blocker
          </option>
          <option value="critical">critical
          </option>
          <option value="major">major
          </option>
          <option value="normal" selected>normal
          </option>
          <option value="minor">minor
          </option>
          <option value="trivial">trivial
          </option>
          <option value="enhancement">enhancement
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
          </tr>

            <tr>
              <td align="right">
                <b>
                  Target Milestone:
                </b>
              </td><td>
    <label for="target_milestone" accesskey="i">
      <select name="target_milestone" id="target_milestone">
          <option value="---" selected>---
          </option>
          <option value="0.5">0.5
          </option>
          <option value="0.6">0.6
          </option>
      </select>
    </label>
  </td>
  <td>&nbsp;</td>
            </tr>

        </table>
      </td>

      <td valign="top">

        <table cellpadding="1" cellspacing="1">

          <tr>
            <td align="right">
              <b>Reporter:</b>
            </td>
            <td>
              <a href="mailto:beatmik&#64;acm.org">Mik Kersten &lt;beatmik&#64;acm.org&gt;</a>
            </td>
          </tr>

          <tr>
            <td align="right" valign="top">
              <b><u>A</u>dd&nbsp;CC:</b>
            </td>
            <td><input
  name="newcc"
  value="" accesskey="a"  size="30" 
>
            </td>
          </tr>

          <tr>
            <td align="right" valign="top">
              <b>CC:</b>
            </td>
            <td valign="top">
              <select name="cc" multiple="multiple" size="5">
                <option value="beatmik&#64;acm.org">beatmik&#64;acm.org</option>
              </select>
              <br>
              <input type="checkbox" name="removecc">Remove selected CCs
              <br>
            </td>
          </tr>

        </table>

      </td>
      </tr>

      <tr>
        <td colspan="2">
          <table cellspacing="1" cellpadding="1">

      

           <tr>
             <td align="right">
             <b><u>Q</u>A Contact:</b>
             </td>
             <td colspan="7"><input
  name="qa_contact"
  value="" accesskey="q"  size="60" 
>
             </td>
           </tr>

          <tr>
            <td align="right">
              <b>
                  <u>U</u>RL:
              </b>
            </td>
            <td colspan="5">
              <input name="bug_file_loc" accesskey="u"
                     value="" size="60">
            </td>
          </tr>

          <tr>
            <td align="right">
              <b><u>S</u>ummary:</b>
            </td>
            <td colspan="5">
              <input name="short_desc" accesskey="s"
                     value="bugzilla refresh incorrect for new reports and newly opened hits" size="60">
            </td>
          </tr>

            <tr>
              <td align="right">
                <b>Status <u>W</u>hiteboard:</b>
              </td>
              <td colspan="5">
                <input name="status_whiteboard" accesskey="w"
                       value="" size="60">
              </td>
            </tr>

            <tr>
              <td align="right">
                <b>
                  <a href="describekeywords.cgi"><u>K</u>eywords</a>:
                </b>
              <td colspan="5">
                <input name="keywords" accesskey="k"
                       value="" size="60">
              </td>
            </tr>

        </table>
      </td>

      <td valign="top">
        <table cellspacing="1" cellpadding="1">
          <tr>
            <td colspan="2" valign="top">
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>



<br>
<table cellspacing="0" cellpadding="4" border="1">
  <tr>
    <th bgcolor="#cccccc" align="left">Attachment</th>
    <th bgcolor="#cccccc" align="left">Type</th>
    <th bgcolor="#cccccc" align="left">Created</th>
    <th bgcolor="#cccccc" align="left">Size</th>
    <th bgcolor="#cccccc" align="left">Actions</th>
  </tr>

  <tr>
    <td colspan="4">
      <a href="attachment.cgi?bugid=125527&amp;action=enter">Create a New Attachment</a> (proposed patch, testcase, etc.)
    </td>
      <td class="bz_disabled">
        View All
      </td>
  </tr>
</table>
<br>



  <table>
    <tr><th align="right">Bug 125527 depends on:</th>
  <td>
  </td>
  <td>
    <input name="dependson" accesskey="i"
           value="">
  </td>
      <td rowspan="2">
        <a href="showdependencytree.cgi?id=125527">Show
        dependency tree</a>

      </td>
    </tr>

    <tr><th align="right">Bug 125527 <u>b</u>locks:</th>
  <td>
  </td>
  <td>
    <input name="blocked" accesskey="b"
           value="">
  </td>
    </tr>
  </table>

  <table>
    <tr>
      <th>
        <a href="page.cgi?id=voting.html">Votes</a>:
      </th>
      <td>0&nbsp;&nbsp;&nbsp;
        <a href="votes.cgi?action=show_bug&amp;bug_id=125527">Show
        votes for this bug</a>&nbsp;&nbsp;&nbsp;
        <a href="votes.cgi?action=show_user&amp;bug_id=125527#vote_125527">Vote
        for this bug</a>
      </td>
    </tr>
  </table>



  <br>
  <b>Additional <u>C</u>omments:</b>
  <br>
  <a name="add_comment"></a>
  <textarea name="comment" id="comment" rows="10" cols="80"
            accesskey="c"></textarea>

    <br>
    <label for="addselfcc">
      <input type="checkbox" id="addselfcc" name="addselfcc">
      Add  to CC list
    </label>
  <br>

<br>
  <input type="radio" id="knob-leave" name="knob" value="none" checked="checked">
  <label for="knob-leave">
    Leave as <b>RESOLVED&nbsp;FIXED</b>
  </label>
  <br>




        <input type="radio" id="knob-reopen" name="knob" value="reopen">
        <label for="knob-reopen">
          Reopen bug
        </label>
        <br>
        <input type="radio" id="knob-verify" name="knob" value="verify">
        <label for="knob-verify">
          Mark bug as <b>VERIFIED</b>
        </label>
        <br>
        <input type="radio" id="knob-close" name="knob" value="close">
        <label for="knob-close">
          Mark bug as <b>CLOSED</b>
        </label>
        <br>

  <input type="submit" value="Commit">
  <input type="hidden" name="form_name" value="process_bug">
  <p>
    <font size="+1">
      <b>
        <a href="show_activity.cgi?id=125527">View Bug Activity</a>
        &nbsp; | &nbsp;
        <a href="show_bug.cgi?format=multiple&amp;id=125527">Format For Printing</a>
        &nbsp; | &nbsp;
        <a href="enter_bug.cgi?cloned_bug_id=125527">Clone This Bug</a>

        
      </b>
    </font>

  </p>



<hr>
<div >
        <table>
          <tr>
            <td align="left">
              <b><a name="c0" href="show_bug.cgi?id=125527#c0">
                Description</a>:</b>&nbsp;&nbsp;<script type="text/javascript"><!-- 
                    addReplyLink(0);
                  //--></script>
            </td>
            <td align="left" width="30%">
              <b>Opened:</b> 2006-01-27 13:36
            </td>
          </tr>
        </table>
        


<pre id="comment_text_0">After bug report is added, description is always blank, and it's opened in
wrong editor (ExistingBugEditor, not MylarTaskEditor).

After hit is opened and becomes a task, task stays italic.
</pre>
    </div>
  <div >
        <br>
        <span class="bz_comment">
          ------- <i>Comment
          <a name="c1" href="show_bug.cgi?id=125527#c1">
            #1</a> From 
          <a href="mailto:beatmik&#64;acm.org">Mik Kersten</a>
          2006-01-27 21:30 
          </i>
          <script type="text/javascript"><!-- 
            addReplyLink(1); //--></script>
          -------
        </span>
        


<pre id="comment_text_1">Done.
</pre>
    </div>

</form>

<hr>
<i><font color="#777777">First</font></i>
  <i><font color="#777777">Last</font></i>
  <i><font color="#777777">Prev</font></i>
  <i><font color="#777777">Next</font></i>
  &nbsp;&nbsp;
  <i><font color="#777777">No search results available</font></i>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="query.cgi">Search page</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="enter_bug.cgi">Enter new bug</a>

<br>
<div id="footer">
  <div class="intro"></div>




<form method="get" action="show_bug.cgi">
<div id="useful-links">
  <div id="links-actions">
    <div class="label">Actions:</div>
    <div class="links">
        <a href="./">Home</a> | 
        <a href="enter_bug.cgi">New</a> | 
        <a href="query.cgi">Search</a> |
        bug # <input class="txt" name="id" size="6">
        <input class="btn" type="submit" value="Find"> | 
        
        <a href="report.cgi">Reports</a> 
        
          | <a href="request.cgi">Requests</a>
              
        
              | <a href="createaccount.cgi">New&nbsp;Account</a>
            | <a href="index.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
    </div>
  </div>
      
    

    
    
  <div id="links-saved">
    <div class="label">
    </div>
    <div class="links">

    </div>
  </div>

  
</div>
</form>

  <div class="outro"></div>
</div>

</body>
</html>