private void findNext() throws UnsupportedOperationException {
			while(this._state == 0)
			{
				if(this._source.hasNext())
				{
					T item = this._source.next();
					try {
						if(this._predicate.evaluate(item))
						{
							this._current = item;
							this._state = 1;
						}
					} catch (Exception e) {
						throw new UnsupportedOperationException(e);
					}

				}
				else	
				{
					this._state = 2;
				}
			}

		}