[361060] Aggregations with nil=ÕtrueÕ throw exceptions.
diff --git a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
index d12f649..fa168b8 100644
--- a/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
+++ b/tests/org.eclipse.wst.xml.xpath2.processor.tests/src/org/eclipse/wst/xml/xpath2/processor/test/TestBugs.java
@@ -57,7 +57,9 @@
  *  Mukul Gandhi    - bug 339025 - fixes to fn:distinct-values function. ability to find distinct values on node items.
  *  Mukul Gandhi    - bug 341862 - improvements to computation of typed value of xs:boolean nodes.                                 
  *  Jesper Steen Moller  - bug 340933 - Migrate tests to new XPath2 API
- *******************************************************************************/
+ *  Lukasz Wycisk   - bug 361060 - Aggregations with nil=ÕtrueÕ throw exceptions.
+ ******************************************************************************/
+
 package org.eclipse.wst.xml.xpath2.processor.test;
 
 import java.math.BigInteger;
@@ -2417,6 +2419,77 @@
 		assertEquals("2", actual);
 	}
 	
+	public void testNumberAggregationWithNill() throws Exception {
+
+		URL fileURL = bundle.getEntry("/bugTestFiles/bugNilled.xml");
+		URL schemaURL = bundle.getEntry("/bugTestFiles/bugNilled.xsd");
+
+		loadDOMDocument(fileURL, schemaURL);
+
+		// Get XSModel object for the Schema
+		XSModel schema = getGrammar(schemaURL);
+
+		setupDynamicContext(schema);
+		
+		String xpath = null;
+		ResultSequence rs = null;
+		String actual = null;
+		
+		//a
+		xpath = "fn:count(( /root/element1, /root/element2, /root/element3 ))";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("3", actual);
+		
+		//b
+		xpath = "fn:sum(( /root/element1, /root/element2, /root/element3 ))";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("43", actual);
+		
+		//b2
+		xpath = "fn:sum(( /root/element1, /root/element2, /root/element3 ), 100)";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("143", actual);
+		
+		//c
+		xpath = "fn:avg(( /root/element1, /root/element2, /root/element3, 1 ))";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("11", actual);
+		
+		//d
+		xpath = "fn:max(( /root/element1, /root/element2, /root/element3 ))";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("42", actual);
+		
+		//e
+		xpath = "fn:min(( /root/element1, /root/element2, /root/element3 ))";
+		compileXPath(xpath);
+		rs = evaluate(domDoc);
+		
+		assertTrue( rs.size()>0 );
+		actual = ((XSDecimal) rs.first()).getStringValue();
+		assertEquals("1", actual);
+	}
+	
 	public void testBug339025_distinctValuesOnNodeSequence() throws Exception {
 		// bug 339025
 		URL fileURL = bundle.getEntry("/bugTestFiles/bug339025.xml");