X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2Fhandler%2FWriteEventHandler.java;fp=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2Fhandler%2FWriteEventHandler.java;h=35e2287726a53c7bca9cd337fcef3e105ccdc304;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=f58e9c35cf05089809d83d7ed5c21545a34b3a04;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/handler/WriteEventHandler.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/handler/WriteEventHandler.java index f58e9c35c..35e228772 100644 --- a/bundles/org.simantics.document.server/src/org/simantics/document/server/handler/WriteEventHandler.java +++ b/bundles/org.simantics.document.server/src/org/simantics/document/server/handler/WriteEventHandler.java @@ -1,44 +1,44 @@ -package org.simantics.document.server.handler; - -import org.simantics.Simantics; -import org.simantics.db.WriteGraph; -import org.simantics.db.common.request.WriteResultRequest; -import org.simantics.db.exception.DatabaseException; -import org.simantics.document.server.io.CommandContext; -import org.simantics.document.server.io.CommandResult; -import org.simantics.document.server.serverResponse.Error; -import org.simantics.document.server.serverResponse.IDelayedResponse; - -public abstract class WriteEventHandler extends AbstractEventHandler { - - protected abstract CommandResult handle(WriteGraph graph, CommandContext parameters) throws DatabaseException; - - public CommandResult handle(final CommandContext parameters) { - try { - CommandResult response = Simantics.getSession().syncRequest(new WriteResultRequest() { - @Override - public CommandResult perform(WriteGraph graph) throws DatabaseException { - graph.markUndoPoint(); - return handle(graph, parameters); - } - }); - - if(response instanceof IDelayedResponse && !(((IDelayedResponse)response).hasRun())) { - try { - synchronized(response) { - response.wait(200000); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - return response; - } catch (DatabaseException e) { - e.printStackTrace(); - return new Error(e.getMessage()); // Return some error - } - } - - -} +package org.simantics.document.server.handler; + +import org.simantics.Simantics; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.WriteResultRequest; +import org.simantics.db.exception.DatabaseException; +import org.simantics.document.server.io.CommandContext; +import org.simantics.document.server.io.CommandResult; +import org.simantics.document.server.serverResponse.Error; +import org.simantics.document.server.serverResponse.IDelayedResponse; + +public abstract class WriteEventHandler extends AbstractEventHandler { + + protected abstract CommandResult handle(WriteGraph graph, CommandContext parameters) throws DatabaseException; + + public CommandResult handle(final CommandContext parameters) { + try { + CommandResult response = Simantics.getSession().syncRequest(new WriteResultRequest() { + @Override + public CommandResult perform(WriteGraph graph) throws DatabaseException { + graph.markUndoPoint(); + return handle(graph, parameters); + } + }); + + if(response instanceof IDelayedResponse && !(((IDelayedResponse)response).hasRun())) { + try { + synchronized(response) { + response.wait(200000); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + return response; + } catch (DatabaseException e) { + e.printStackTrace(); + return new Error(e.getMessage()); // Return some error + } + } + + +}