@Override
	public void set(E newValue) 
	{
		// double checking
		if (newValue != null) 
		{
			if (value == null) 
			{
				synchronized (this) 
				{
					if (value == null) {
						this.notifyAll();
						this.value = newValue;
					}
				}
			}
		}
		this.value = newValue;	
	}