protected double[] getNumericFeatureArrayFromFields(Object o)
	{

		ResizableDoubleArray arr = new ResizableDoubleArray();
		
		//Set up the fields if they've not been handled previously
		if(this.numericFeatureFields == null)
		{
			this.initNumericFeatureFields(o);
		}
		
		for(String field : this.numericFeatureFields) {
			Field f = null;
			try
			{
				f = o.getClass().getDeclaredField(field);
				
			}
			catch (SecurityException e1)
			{
				LOG.error(e1);
			}
			catch (NoSuchFieldException e1)
			{
				LOG.debug(Arrays.toString(o.getClass().getDeclaredFields()));
				LOG.error(e1);
			}
			
			try {
				f.setAccessible(true);
				//LOG.debug(f.get(o));
				arr.addElement(Double.parseDouble(f.get(o).toString()));
			} catch (IllegalArgumentException e) {
				
				LOG.error(e);
			} catch (IllegalAccessException e) {
				
				LOG.error(e);
			} catch(StackOverflowError s)
			{

				try
				{
					LOG.error(f.get(o));
				}
				catch (IllegalArgumentException e)
				{
					LOG.error(e);
				}
				catch (IllegalAccessException e)
				{
					LOG.error(e);
				}
			}
			
		}
		
		return arr.getElements();
	}