Program: 76886
Project: 76886
Buggy source:
/** 
 * Test access to "params's value" with report handle
 */
public void testParamsWithItAttr() throws Exception {
  scope=new DataAdapterTopLevelScope(cx,design);
  Object r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertNull(r);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertTrue(r.toString().length() > 0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Date.class);
  r=evaluateScript("String_Node_Str");
  assertNull(r);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Date.class);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Double.class);
  assertEquals(((Double)r).intValue(),1234);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Double.class);
  assertEquals(((Double)r).intValue(),0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),BigDecimal.class);
  assertEquals(((BigDecimal)r).intValue(),1234);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),BigDecimal.class);
  assertEquals(((BigDecimal)r).intValue(),0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Boolean.class);
  assertTrue(((Boolean)r).booleanValue());
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Boolean.class);
  assertFalse(((Boolean)r).booleanValue());
}

Fixed version (ground truth):
/** 
 * Test access to "params's value" with report handle
 */
public void testParamsWithItAttr() throws Exception {
  scope=new DataAdapterTopLevelScope(cx,design);
  Object r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertNull(r);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertTrue(r.toString().length() > 0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Date.class);
  r=evaluateScript("String_Node_Str");
  assertNull(r);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Date.class);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Double.class);
  assertEquals(((Double)r).intValue(),1234);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Double.class);
  assertEquals(((Double)r).intValue(),0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),BigDecimal.class);
  assertEquals(((BigDecimal)r).intValue(),1234);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),BigDecimal.class);
  assertEquals(((BigDecimal)r).intValue(),0);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Boolean.class);
  assertTrue(((Boolean)r).booleanValue());
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),Boolean.class);
  assertFalse(((Boolean)r).booleanValue());
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
  r=evaluateScript("String_Node_Str");
  assertEquals(r,null);
  r=evaluateScript("String_Node_Str");
  assertEquals(r.getClass(),String.class);
  assertEquals(r,"String_Node_Str");
}