Commit 4e94624b authored by clm's avatar clm Committed by Commit bot

Fix doing network operations on wrong executor

BUG=580632

Review URL: https://codereview.chromium.org/1619923004

Cr-Commit-Position: refs/heads/master@{#371842}
parent 6e48fd80
......@@ -326,7 +326,7 @@ final class JavaUrlRequest implements UrlRequest {
}
void startRead() {
mUserExecutor.execute(uploadErrorSetting(new CheckedRunnable() {
mExecutor.execute(errorSetting(State.STARTED, new CheckedRunnable() {
@Override
public void run() throws Exception {
if (mOutputChannel == null) {
......@@ -336,7 +336,12 @@ final class JavaUrlRequest implements UrlRequest {
mOutputChannel = Channels.newChannel(mUrlConnection.getOutputStream());
}
mSinkState.set(SinkState.AWAITING_READ_RESULT);
mUploadProvider.read(OutputStreamDataSink.this, mBuffer);
mUserExecutor.execute(uploadErrorSetting(new CheckedRunnable() {
@Override
public void run() throws Exception {
mUploadProvider.read(OutputStreamDataSink.this, mBuffer);
}
}));
}
}));
}
......
......@@ -5,6 +5,7 @@
package org.chromium.net;
import android.os.ConditionVariable;
import android.os.StrictMode;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
......@@ -68,8 +69,23 @@ class TestUrlRequestCallback extends UrlRequest.Callback {
private int mBufferPositionBeforeRead;
private class ExecutorThreadFactory implements ThreadFactory {
public Thread newThread(Runnable r) {
mExecutorThread = new Thread(r);
public Thread newThread(final Runnable r) {
mExecutorThread = new Thread(new Runnable() {
@Override
public void run() {
StrictMode.ThreadPolicy threadPolicy = StrictMode.getThreadPolicy();
try {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectNetwork()
.penaltyLog()
.penaltyDeath()
.build());
r.run();
} finally {
StrictMode.setThreadPolicy(threadPolicy);
}
}
});
return mExecutorThread;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment