Source:
public void open(IProgressMonitor monitor) { try { monitor.beginTask(Messages.DAnalysisSessionImpl_openMsg, 33); SessionManager.INSTANCE.add(this); monitor.worked(1); notifyListeners(SessionListener.OPENING); monitor.worked(1); DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.OPEN_SESSION_KEY); ResourceSetSync.getOrInstallResourceSetSync(transactionalEditingDomain).registerClient(resourcesSynchronizer); monitor.worked(1); this.representationNameListener = new RepresentationNameListener(this); monitor.worked(1); tracker.initialize(monitor); monitor.worked(1); setSynchronizeStatusofEveryResource(); monitor.worked(1); configureInterpreter(); monitor.worked(1); initializeAccessor(); monitor.worked(1); ViewpointRegistry.getInstance().addListener(this.vsmUpdater); TransactionalEditingDomain.DefaultOptions options = TransactionUtil.getAdapter(getTransactionalEditingDomain(), TransactionalEditingDomain.DefaultOptions.class); if (options != null) { Object value = options.getDefaultTransactionOptions().get(Transaction.OPTION_VALIDATE_EDIT); ValidateEditSupport delegate = null; if (value instanceof ValidateEditSupport) { delegate = (ValidateEditSupport) value; } if (!(delegate instanceof ResourceModifiedFieldUpdater) && getTransactionalEditingDomain() instanceof InternalTransactionalEditingDomain) { InternalTransactionalEditingDomain internalDomain = (InternalTransactionalEditingDomain) getTransactionalEditingDomain(); new ResourceModifiedFieldUpdater(internalDomain, delegate); } } ECrossReferenceAdapterWithUnproxyCapability semanticCrossReferencer = getSemanticCrossReferencer(); this.eAdapters().add(semanticCrossReferencer); DViewOperations.on(this).updateSelectedViewpointsData(new SubProgressMonitor(monitor, 10)); initLocalTriggers(); checkResourceErrors(); super.setOpen(true); DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.OPEN_SESSION_KEY); notifyListeners(SessionListener.OPENED); monitor.worked(1); } catch (RuntimeException e) { super.setOpen(true); close(new SubProgressMonitor(monitor, 10)); throw e; } finally { monitor.done(); } }

Target:
public void open(IProgressMonitor monitor) { try { monitor.beginTask(Messages.DAnalysisSessionImpl_openMsg, 33); SessionManager.INSTANCE.add(this); monitor.worked(1); notifyListeners(SessionListener.OPENING); monitor.worked(1); DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.OPEN_SESSION_KEY); ResourceSetSync.getOrInstallResourceSetSync(transactionalEditingDomain).registerClient(resourcesSynchronizer); monitor.worked(1); this.representationNameListener = new RepresentationNameListener(this); monitor.worked(1); tracker.initialize(monitor); monitor.worked(1); setSynchronizeStatusofEveryResource(); monitor.worked(1); configureInterpreter(); monitor.worked(1); initializeAccessor(); monitor.worked(1); ViewpointRegistry.getInstance().addListener(this.vsmUpdater); TransactionalEditingDomain.DefaultOptions options = TransactionUtil.getAdapter(getTransactionalEditingDomain(), TransactionalEditingDomain.DefaultOptions.class); if (options != null) { Object value = options.getDefaultTransactionOptions().get(Transaction.OPTION_VALIDATE_EDIT); ValidateEditSupport delegate = null; if (value instanceof ValidateEditSupport) { delegate = (ValidateEditSupport) value; } if (!(delegate instanceof ResourceModifiedFieldUpdater) && getTransactionalEditingDomain() instanceof InternalTransactionalEditingDomain) { InternalTransactionalEditingDomain internalDomain = (InternalTransactionalEditingDomain) getTransactionalEditingDomain(); new ResourceModifiedFieldUpdater(internalDomain, delegate); } } ECrossReferenceAdapterWithUnproxyCapability semanticCrossReferencer = getSemanticCrossReferencer(); for (DAnalysis dAnalysis : analyses) { dAnalysis.eAdapters().add(semanticCrossReferencer); } DViewOperations.on(this).updateSelectedViewpointsData(new SubProgressMonitor(monitor, 10)); initLocalTriggers(); checkResourceErrors(); super.setOpen(true); DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.OPEN_SESSION_KEY); notifyListeners(SessionListener.OPENED); monitor.worked(1); } catch (RuntimeException e) { super.setOpen(true); close(new SubProgressMonitor(monitor, 10)); throw e; } finally { monitor.done(); } }