if(path == null) { return; }
	public void doSaveAs( )	{		IReportProvider provider = EditorUtil.getReportProvider( this, getEditorInput( ) );		if ( provider != null )		{			IPath path = provider.getSaveAsPath( getEditorInput( ) );			final IEditorInput input = provider.createNewEditorInput( path );			setInput( input );			IRunnableWithProgress op = new IRunnableWithProgress( ) {				public synchronized final void run( IProgressMonitor monitor )						throws InvocationTargetException, InterruptedException				{					final InvocationTargetException[] iteHolder = new InvocationTargetException[1];					try					{						IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable( ) {							public void run( IProgressMonitor pm )									throws CoreException							{								try								{									execute( pm );								}								catch ( InvocationTargetException e )								{									// Pass it outside the workspace runnable									iteHolder[0] = e;								}								catch ( InterruptedException e )								{									// Re-throw as OperationCanceledException,									// which									// will be									// caught and re-thrown as									// InterruptedException									// below.									throw new OperationCanceledException( e.getMessage( ) );								}								// CoreException and OperationCanceledException								// are								// propagated							}						};						ResourcesPlugin.getWorkspace( ).run( workspaceRunnable,								ResourcesPlugin.getWorkspace( ).getRoot( ),								IResource.NONE,								monitor );					}					catch ( CoreException e )					{						throw new InvocationTargetException( e );					}					catch ( OperationCanceledException e )					{						throw new InterruptedException( e.getMessage( ) );					}					// Re-throw the InvocationTargetException, if any occurred					if ( iteHolder[0] != null )					{						throw iteHolder[0];					}				}				public void execute( final IProgressMonitor monitor )						throws CoreException, InvocationTargetException,						InterruptedException				{					try					{						doSave( monitor );					}					catch ( Exception e )					{						ExceptionHandler.handle( e );					}				}			};			try			{				new ProgressMonitorDialog( getSite( ).getWorkbenchWindow( )						.getShell( ) ).run( false, true, op );			}			catch ( Exception e )			{				ExceptionHandler.handle( e );			}		}	}