Program: 102329
Project: 102329
Buggy source:
/** 
 * @see org.eclipse.jface.wizard.IWizard#performFinish()
 * @since 4.0
 */
@Override public boolean finish(){
  boolean result=false;
  final IRunnableWithProgress op=new IRunnableWithProgress(){
    public void run(    final IProgressMonitor monitor) throws InvocationTargetException {
      try {
        if (ppProcessorPack == null) {
          XPackage xPackage=getExtensionPackage(getFolder());
          final JdbcSource src=getSource();
          final RelationalModelProcessor processor=JdbcModelProcessorManager.createRelationalModelProcessor(src);
          processor.setMoveRatherThanCopyAdds(!isUpdatedModel());
          final IFile modelFile=getFolder().getFile(new Path(getModelName()));
          final ModelResource resrc=ModelerCore.create(modelFile);
          final ModelAnnotation modelAnnotation=resrc.getModelAnnotation();
          modelAnnotation.setPrimaryMetamodelUri(RelationalPackage.eNS_URI);
          modelAnnotation.setModelType(ModelType.PHYSICAL_LITERAL);
          if (xPackage == null) {
            util.log(IStatus.WARNING,util.getString("String_Node_Str"));
          }
 else {
            modelAnnotation.setExtensionPackage(xPackage);
          }
          if (resrc instanceof ModelResourceImpl) {
            ((ModelResourceImpl)resrc).setModelType(ModelType.PHYSICAL_LITERAL);
          }
          XsdAsRelationalImportWizard.this.status=processor.execute(resrc,getDatabase(),src.getImportSettings(),monitor);
          ppProcessorPack=new ProcessorPack(processor,src,modelFile,resrc);
        }
 else {
          XsdAsRelationalImportWizard.this.status=ppProcessorPack.getProcessor().execute(ppProcessorPack.getModelResource(),getDatabase(),ppProcessorPack.getJdbcSource().getImportSettings(),monitor);
        }
        if (XsdAsRelationalImportWizard.this.status.getSeverity() != IStatus.ERROR) {
          final List objs=ppProcessorPack.getModelResource().getAllRootEObjects();
          for (final Iterator iter=objs.iterator(); iter.hasNext(); ) {
            if (iter.next() instanceof JdbcSource) {
              iter.remove();
              break;
            }
          }
          ppProcessorPack.getJdbcSource().setJdbcDriver(null);
          objs.add(ppProcessorPack.getJdbcSource());
          ppProcessorPack.getModelResource().save(monitor,true);
          getFolder().refreshLocal(IResource.DEPTH_INFINITE,monitor);
          ModelEditorManager.activate(ppProcessorPack.getModelFile(),true);
        }
      }
 catch (      final OperationCanceledException err) {
      }
catch (      final Exception err) {
        throw new InvocationTargetException(err);
      }
 finally {
        monitor.done();
        ppProcessorPack=null;
      }
    }
  }
;
  try {
    new ProgressMonitorDialog(getShell()).run(true,true,op);
switch (this.status.getSeverity()) {
case IStatus.WARNING:
case IStatus.INFO:
case IStatus.OK:
      break;
case IStatus.ERROR:
default :
    util.log(this.status);
  WidgetUtil.showError(IMPORT_ERROR_MESSAGE);
break;
}
result=true;
}
 catch (Throwable err) {
if (err instanceof InvocationTargetException) {
err=((InvocationTargetException)err).getTargetException();
}
JdbcUiUtil.showError(err,IMPORT_ERROR_MESSAGE);
}
return result;
}

Fixed version (ground truth):
/** 
 * @see org.eclipse.jface.wizard.IWizard#performFinish()
 * @since 4.0
 */
@Override public boolean finish(){
  boolean result=false;
  final IRunnableWithProgress op=new IRunnableWithProgress(){
    public void run(    final IProgressMonitor monitor) throws InvocationTargetException {
      try {
        if (ppProcessorPack == null) {
          XPackage xPackage=getExtensionPackage(getFolder());
          final JdbcSource src=getSource();
          final RelationalModelProcessor processor=JdbcModelProcessorManager.createRelationalModelProcessor();
          processor.setMoveRatherThanCopyAdds(!isUpdatedModel());
          final IFile modelFile=getFolder().getFile(new Path(getModelName()));
          final ModelResource resrc=ModelerCore.create(modelFile);
          final ModelAnnotation modelAnnotation=resrc.getModelAnnotation();
          modelAnnotation.setPrimaryMetamodelUri(RelationalPackage.eNS_URI);
          modelAnnotation.setModelType(ModelType.PHYSICAL_LITERAL);
          if (xPackage == null) {
            util.log(IStatus.WARNING,util.getString("String_Node_Str"));
          }
 else {
            modelAnnotation.setExtensionPackage(xPackage);
          }
          if (resrc instanceof ModelResourceImpl) {
            ((ModelResourceImpl)resrc).setModelType(ModelType.PHYSICAL_LITERAL);
          }
          XsdAsRelationalImportWizard.this.status=processor.execute(resrc,getDatabase(),src.getImportSettings(),monitor);
          ppProcessorPack=new ProcessorPack(processor,src,modelFile,resrc);
        }
 else {
          XsdAsRelationalImportWizard.this.status=ppProcessorPack.getProcessor().execute(ppProcessorPack.getModelResource(),getDatabase(),ppProcessorPack.getJdbcSource().getImportSettings(),monitor);
        }
        if (XsdAsRelationalImportWizard.this.status.getSeverity() != IStatus.ERROR) {
          final List objs=ppProcessorPack.getModelResource().getAllRootEObjects();
          for (final Iterator iter=objs.iterator(); iter.hasNext(); ) {
            if (iter.next() instanceof JdbcSource) {
              iter.remove();
              break;
            }
          }
          ppProcessorPack.getJdbcSource().setJdbcDriver(null);
          objs.add(ppProcessorPack.getJdbcSource());
          ppProcessorPack.getModelResource().save(monitor,true);
          getFolder().refreshLocal(IResource.DEPTH_INFINITE,monitor);
          ModelEditorManager.activate(ppProcessorPack.getModelFile(),true);
        }
      }
 catch (      final OperationCanceledException err) {
      }
catch (      final Exception err) {
        throw new InvocationTargetException(err);
      }
 finally {
        monitor.done();
        ppProcessorPack=null;
      }
    }
  }
;
  try {
    new ProgressMonitorDialog(getShell()).run(true,true,op);
switch (this.status.getSeverity()) {
case IStatus.WARNING:
case IStatus.INFO:
case IStatus.OK:
      break;
case IStatus.ERROR:
default :
    util.log(this.status);
  WidgetUtil.showError(IMPORT_ERROR_MESSAGE);
break;
}
result=true;
}
 catch (Throwable err) {
if (err instanceof InvocationTargetException) {
err=((InvocationTargetException)err).getTargetException();
}
JdbcUiUtil.showError(err,IMPORT_ERROR_MESSAGE);
}
return result;
}