if (context._requestSessionID() != null) {
application.restoreSessionWithID(sessionId, context);
}
try {
final WODynamicURL url = request._uriDecomposed();
final String requestPath = url.requestHandlerPath();
final Matcher idMatcher = Pattern.compile("^id/(\\d+)/").matcher(requestPath);
final Integer requestedAttachmentID;
String requestedWebPath;
final boolean requestedPathContainsAnAttachmentID = idMatcher.find();
if (requestedPathContainsAnAttachmentID) {
requestedAttachmentID = Integer.valueOf(idMatcher.group(1));
requestedWebPath = idMatcher.replaceFirst("/");
} else {
// MS: This is kind of goofy because we lookup by path, your web path needs to
// have a leading slash on it.
requestedWebPath = "/" + requestPath;
requestedAttachmentID = null;
}
try {
InputStream attachmentInputStream;
String mimeType;
String fileName;
long length;
String queryString = url.queryString();
boolean proxyAsAttachment = (queryString != null && queryString.contains("attachment=true"));
EOEditingContext editingContext = ERXEC.newEditingContext();
editingContext.lock();