use of org.bimserver.database.ProgressHandler in project BIMserver by opensourceBIM.
the class LongBranchAction method execute.
@Override
public void execute() {
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
action.setDatabaseSession(session);
session.executeAndCommitAction(action, new ProgressHandler() {
private int count;
@Override
public void progress(int current, int max) {
if (count == 0) {
updateProgress("Storing data...", current * 100 / max);
} else {
updateProgress("Storing data (" + (count + 1) + ")...", current * 100 / max);
}
}
@Override
public void retry(int count) {
this.count = count;
}
});
} catch (Exception e) {
if (e instanceof UserException) {
} else if (e instanceof BimserverConcurrentModificationDatabaseException) {
// Ignore
} else {
LOGGER.error("", e);
}
error(e);
} finally {
session.close();
done();
if (getActionState() != ActionState.AS_ERROR) {
changeActionState(ActionState.FINISHED, "Done", 100);
}
}
}
use of org.bimserver.database.ProgressHandler in project BIMserver by opensourceBIM.
the class LongCheckinAction method execute.
public void execute() {
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
checkinDatabaseAction.setDatabaseSession(session);
session.executeAndCommitAction(checkinDatabaseAction, new ProgressHandler() {
private int count;
@Override
public void progress(int current, int max) {
if (count == 0) {
updateProgress("Saving to database (" + fileName + ")", current * 100 / max);
} else {
updateProgress("Saving to database (" + fileName + ", " + count + " try)", current * 100 / max);
}
}
@Override
public void retry(int count) {
this.count = count;
}
});
} catch (Exception e) {
if (e instanceof UserException) {
} else if (e instanceof BimserverConcurrentModificationDatabaseException) {
// Ignore
} else {
LOGGER.error("", e);
}
error(e);
} finally {
session.close();
if (getActionState() != ActionState.AS_ERROR) {
changeActionState(ActionState.FINISHED, "Checkin of " + fileName, 100);
}
done();
}
}
use of org.bimserver.database.ProgressHandler in project BIMserver by opensourceBIM.
the class LongGenericAction method execute.
public void execute() {
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
action.setDatabaseSession(session);
session.executeAndCommitAction(action, new ProgressHandler() {
private int count;
@Override
public void progress(int current, int max) {
if (count == 0) {
updateProgress("Saving to database (" + fileName + ")", current * 100 / max);
} else {
updateProgress("Saving to database (" + fileName + ", " + count + " try)", current * 100 / max);
}
}
@Override
public void retry(int count) {
this.count = count;
}
}, new RollbackListener() {
@Override
public void rollback() {
try {
action.rollback();
} catch (BimserverDatabaseException e) {
LOGGER.error("", e);
}
}
});
} catch (Exception e) {
if (e instanceof UserException) {
} else if (e instanceof BimserverConcurrentModificationDatabaseException) {
// Ignore
} else {
LOGGER.error("", e);
}
error(e);
} finally {
try {
action.close();
} catch (Exception e) {
LOGGER.error("", e);
}
session.close();
if (getActionState() != ActionState.AS_ERROR) {
changeActionState(ActionState.FINISHED, action.doneMessage(), 100);
}
done();
}
}
use of org.bimserver.database.ProgressHandler in project BIMserver by opensourceBIM.
the class LongStreamingCheckinAction method execute.
public void execute() {
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
checkinDatabaseAction.setDatabaseSession(session);
session.executeAndCommitAction(checkinDatabaseAction, new ProgressHandler() {
private int count;
@Override
public void progress(int current, int max) {
if (count == 0) {
updateProgress("Saving to database (" + fileName + ")", current * 100 / max);
} else {
updateProgress("Saving to database (" + fileName + ", " + count + " try)", current * 100 / max);
}
}
@Override
public void retry(int count) {
this.count = count;
}
}, new RollbackListener() {
@Override
public void rollback() {
try {
checkinDatabaseAction.rollback();
} catch (BimserverDatabaseException e) {
LOGGER.error("", e);
}
}
});
} catch (Exception e) {
if (e instanceof UserException) {
} else if (e instanceof BimserverConcurrentModificationDatabaseException) {
// Ignore
} else {
LOGGER.error("", e);
}
error(e);
} finally {
try {
checkinDatabaseAction.close();
} catch (IOException e) {
LOGGER.error("", e);
}
session.close();
if (getActionState() != ActionState.AS_ERROR) {
changeActionState(ActionState.FINISHED, "Checkin of " + fileName, 100);
}
done();
}
}
Aggregations