本文整理汇总了Java中com.facebook.thrift.TException类的典型用法代码示例。如果您正苦于以下问题:Java TException类的具体用法?Java TException怎么用?Java TException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TException类属于com.facebook.thrift包,在下文中一共展示了TException类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: investigateAndPossiblyRethrowException
import com.facebook.thrift.TException; //导入依赖的package包/类
/**
* Logic that decides how to proceed after a failed Thrift RPC. If it appears to be a stale
* connection, this method will not throw as a signal to retry the RPC. Otherwise, it rethrows the
* exception that was passed in.
*/
private void investigateAndPossiblyRethrowException(TException originalException)
throws TException {
// Because we got a TException when making a Thrift call, we will dereference the current Thrift
// client such that getConnectedClient() will create a new one the next time it is called.
thriftClient = null;
Throwable e = originalException;
while (e != null && !(e instanceof LastErrorException)) {
e = e.getCause();
}
if (e != null) {
// e is a LastErrorException, so it's likely that it was a "Broken pipe" exception, which
// happens when the Eden server decides the Thrift client has been idle for too long and
// closes the connection.
LOG.info(e, "Suspected closed Thrift connection: will create a new one.");
} else {
throw originalException;
}
}
示例2: computeSha1ForOrdinaryFileUnderMount
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void computeSha1ForOrdinaryFileUnderMount() throws IOException, EdenError, TException {
FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
Path root = fs.getPath(JIMFS_WORKING_DIRECTORY);
ProjectFilesystemDelegate delegate = new DefaultProjectFilesystemDelegate(root);
EdenMount mount = createMock(EdenMount.class);
Path path = fs.getPath("foo/bar");
expect(mount.getBindMounts()).andReturn(ImmutableList.of());
expect(mount.getPathRelativeToProjectRoot(root.resolve(path))).andReturn(Optional.of(path));
expect(mount.getSha1(path)).andReturn(DUMMY_SHA1);
replay(mount);
EdenProjectFilesystemDelegate edenDelegate = new EdenProjectFilesystemDelegate(mount, delegate);
assertEquals(DUMMY_SHA1, edenDelegate.computeSha1(path));
verify(mount);
}
示例3: run
import com.facebook.thrift.TException; //导入依赖的package包/类
@Override
public int run(EdenClientPool pool) throws EdenError, IOException, TException {
EdenClient client = pool.getClient();
List<MountInfo> mountInfos = client.listMounts();
System.out.printf("Number of mounts: %d\n", mountInfos.size());
for (MountInfo info : mountInfos) {
System.out.println(info.mountPoint);
EdenMount mount =
EdenMount.createEdenMountForProjectRoot(Paths.get(info.mountPoint), pool).get();
List<Path> bindMounts = mount.getBindMounts();
System.out.printf(" Number of bind mounts: %d\n", bindMounts.size());
for (Path bindMount : bindMounts) {
System.out.printf(" %s\n", bindMount);
}
}
return 0;
}
示例4: getSha1DelegatesToThriftClient
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void getSha1DelegatesToThriftClient() throws EdenError, IOException, TException {
final EdenClient thriftClient = createMock(EdenClient.class);
FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
Path entry = fs.getPath("LICENSE");
HashCode hash = HashCode.fromString("2b8b815229aa8a61e483fb4ba0588b8b6c491890");
SHA1Result sha1Result = new SHA1Result();
sha1Result.setSha1(hash.asBytes());
expect(thriftClient.getSHA1("/home/mbolin/src/buck", ImmutableList.of("LICENSE")))
.andReturn(ImmutableList.of(sha1Result));
replay(thriftClient);
EdenClientPool pool = new EdenClientPool(thriftClient);
Path pathToBuck = fs.getPath("/home/mbolin/src/buck");
Files.createDirectories(pathToBuck.resolve(".eden"));
Files.createSymbolicLink(pathToBuck.resolve(".eden").resolve("root"), pathToBuck);
Optional<EdenMount> mount = EdenMount.createEdenMountForProjectRoot(pathToBuck, pool);
assertTrue("Should find mount for path.", mount.isPresent());
assertEquals(Sha1HashCode.fromHashCode(hash), mount.get().getSha1(entry));
verify(thriftClient);
}
示例5: getSHA1
import com.facebook.thrift.TException; //导入依赖的package包/类
@Override
public List<SHA1Result> getSHA1(String mountPoint, List<String> paths)
throws EdenError, IOException, TException {
try {
return attemptGetSHA1(mountPoint, paths);
} catch (TException e) {
investigateAndPossiblyRethrowException(e);
}
return attemptGetSHA1(mountPoint, paths);
}
示例6: getBindMounts
import com.facebook.thrift.TException; //导入依赖的package包/类
@Override
public List<String> getBindMounts(String mountPoint) throws EdenError, IOException, TException {
try {
return attemptGetBindMounts(mountPoint);
} catch (TException e) {
investigateAndPossiblyRethrowException(e);
}
return attemptGetBindMounts(mountPoint);
}
示例7: listMounts
import com.facebook.thrift.TException; //导入依赖的package包/类
@Override
public List<MountInfo> listMounts() throws EdenError, IOException, TException {
try {
return attemptListMounts();
} catch (TException e) {
investigateAndPossiblyRethrowException(e);
}
return attemptListMounts();
}
示例8: getSha1
import com.facebook.thrift.TException; //导入依赖的package包/类
/** @param entry is a path that is relative to {@link #getProjectRoot()}. */
public Sha1HashCode getSha1(Path entry) throws EdenError, IOException, TException {
List<SHA1Result> results =
pool.getClient().getSHA1(mountPoint, ImmutableList.of(normalizePathArg(entry)));
SHA1Result result = Iterables.getOnlyElement(results);
if (result.getSetField() == SHA1Result.SHA1) {
return Sha1HashCode.fromBytes(result.getSha1());
} else {
throw result.getError();
}
}
示例9: getBindMounts
import com.facebook.thrift.TException; //导入依赖的package包/类
public ImmutableList<Path> getBindMounts() {
List<String> bindMounts;
try {
bindMounts = pool.getClient().getBindMounts(mountPoint);
} catch (EdenError | IOException | TException e) {
throw new RuntimeException(e);
}
return bindMounts.stream().map(Paths::get).collect(ImmutableList.toImmutableList());
}
示例10: newInstanceFromSocket
import com.facebook.thrift.TException; //导入依赖的package包/类
public static Optional<EdenClientPool> newInstanceFromSocket(final Path socketFile) {
// We forcibly try to create an EdenClient as a way of verifying that `socketFile` is a
// valid UNIX domain socket for talking to Eden. If this is not the case, then we should not
// return a new EdenClientPool.
ReconnectingEdenClient edenClient = new ReconnectingEdenClient(socketFile, clock);
try {
edenClient.listMounts();
} catch (EdenError | IOException | TException e) {
return Optional.empty();
}
return Optional.of(new EdenClientPool(socketFile));
}
示例11: getMountInfosDelegatesToThriftClient
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void getMountInfosDelegatesToThriftClient() throws EdenError, IOException, TException {
List<MountInfo> mountInfos =
ImmutableList.of(
new MountInfo("/home/mbolin/src/buck", /* edenClientPath */ ""),
new MountInfo("/home/mbolin/src/eden", /* edenClientPath */ ""));
expect(thriftClient.listMounts()).andReturn(mountInfos);
replay(thriftClient);
assertEquals(mountInfos, pool.getClient().listMounts());
verify(thriftClient);
}
示例12: getMountForMatchesProjectRootEqualToMount
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void getMountForMatchesProjectRootEqualToMount()
throws EdenError, IOException, TException {
Path projectRoot = fs.getPath("/home/mbolin/src/eden");
Files.createDirectories(projectRoot.resolve(".eden"));
Files.createSymbolicLink(projectRoot.resolve(".eden").resolve("root"), projectRoot);
Optional<EdenMount> mount = EdenMount.createEdenMountForProjectRoot(projectRoot, pool);
assertTrue("Should find mount for path.", mount.isPresent());
assertEquals(fs.getPath("/home/mbolin/src/eden"), mount.get().getProjectRoot());
assertEquals(fs.getPath(""), mount.get().getPrefix());
}
示例13: getMountForMatchesProjectRootUnderMount
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void getMountForMatchesProjectRootUnderMount() throws EdenError, IOException, TException {
Path edenMountRoot = fs.getPath("/home/mbolin/src/eden");
Path projectRoot = fs.getPath("/home/mbolin/src/eden/deep/project");
Files.createDirectories(projectRoot.resolve(".eden"));
Files.createSymbolicLink(projectRoot.resolve(".eden").resolve("root"), edenMountRoot);
Optional<EdenMount> mount = EdenMount.createEdenMountForProjectRoot(projectRoot, pool);
assertTrue("Should find mount for path.", mount.isPresent());
assertEquals(projectRoot, mount.get().getProjectRoot());
assertEquals(fs.getPath("deep/project"), mount.get().getPrefix());
}
示例14: getMountForReturnsNullWhenMissingMountPoint
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void getMountForReturnsNullWhenMissingMountPoint()
throws EdenError, IOException, TException {
Path projectRoot = Paths.get("/home/mbolin/src/other_project");
Optional<EdenMount> mount = EdenMount.createEdenMountForProjectRoot(projectRoot, pool);
assertFalse(mount.isPresent());
}
示例15: computeSha1ForOrdinaryFileUnderMountButBehindBindMount
import com.facebook.thrift.TException; //导入依赖的package包/类
@Test
public void computeSha1ForOrdinaryFileUnderMountButBehindBindMount()
throws IOException, EdenError, TException {
FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
Path root = fs.getPath(JIMFS_WORKING_DIRECTORY);
ProjectFilesystemDelegate delegate = new DefaultProjectFilesystemDelegate(root);
EdenMount mount = createMock(EdenMount.class);
Path path = fs.getPath("buck-out/gen/some-output");
Files.createDirectories(path.getParent());
Files.createFile(path);
byte[] bytes = new byte[] {66, 85, 67, 75};
Files.write(path, bytes);
expect(mount.getBindMounts()).andReturn(ImmutableList.of(fs.getPath("buck-out")));
expect(mount.getPathRelativeToProjectRoot(root.resolve(path))).andReturn(Optional.of(path));
replay(mount);
EdenProjectFilesystemDelegate edenDelegate = new EdenProjectFilesystemDelegate(mount, delegate);
assertEquals(
"EdenProjectFilesystemDelegate.computeSha1() should compute the SHA-1 directly via "
+ "DefaultProjectFilesystemDelegate because the path is behind a bind mount.",
Sha1HashCode.fromHashCode(Hashing.sha1().hashBytes(bytes)),
edenDelegate.computeSha1(path));
verify(mount);
}