code: function(state, source, target, points, isSource)
  	{
  		var value = mxUtils.getValue(state.style, (isSource) ? mxConstants.STYLE_SOURCE_JETTY_SIZE :
  			mxConstants.STYLE_TARGET_JETTY_SIZE, mxUtils.getValue(state.style,
  					mxConstants.STYLE_JETTY_SIZE, mxEdgeStyle.orthBuffer));
  		
  		if (value == 'auto')
  		{
  			// Computes the automatic jetty size
  			var type = mxUtils.getValue(state.style, (isSource) ? mxConstants.STYLE_STARTARROW : mxConstants.STYLE_ENDARROW, mxConstants.NONE);
  			
  			if (type != mxConstants.NONE)
  			{
  				var size = mxUtils.getNumber(state.style, (isSource) ? mxConstants.STYLE_STARTSIZE : mxConstants.STYLE_ENDSIZE, mxConstants.DEFAULT_MARKERSIZE);
  				value = Math.max(2, Math.ceil((size + mxEdgeStyle.orthBuffer) / mxEdgeStyle.orthBuffer)) * mxEdgeStyle.orthBuffer;
  			}
  			else
  			{
  				value = 2 * mxEdgeStyle.orthBuffer;
  			}
  		}
  		
  		return value;
  	}
docs: mxEdgeStyle.SOURCE_MASK | mxEdgeStyle.TARGET_MASK,