mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-29 04:57:48 +01:00
Dhfs-fs: remove optional from read
This commit is contained in:
@@ -30,7 +30,7 @@ public interface DhfsFileService {
|
|||||||
|
|
||||||
long size(JObjectKey fileUuid);
|
long size(JObjectKey fileUuid);
|
||||||
|
|
||||||
Optional<ByteString> read(JObjectKey fileUuid, long offset, int length);
|
ByteString read(JObjectKey fileUuid, long offset, int length);
|
||||||
|
|
||||||
Long write(JObjectKey fileUuid, long offset, ByteString data);
|
Long write(JObjectKey fileUuid, long offset, ByteString data);
|
||||||
|
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<ByteString> read(JObjectKey fileUuid, long offset, int length) {
|
public ByteString read(JObjectKey fileUuid, long offset, int length) {
|
||||||
return jObjectTxManager.executeTx(() -> {
|
return jObjectTxManager.executeTx(() -> {
|
||||||
if (length < 0)
|
if (length < 0)
|
||||||
throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Length should be more than zero: " + length));
|
throw new StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Length should be more than zero: " + length));
|
||||||
@@ -281,12 +281,12 @@ public class DhfsFileServiceImpl implements DhfsFileService {
|
|||||||
var file = remoteTx.getData(File.class, fileUuid).orElse(null);
|
var file = remoteTx.getData(File.class, fileUuid).orElse(null);
|
||||||
if (file == null) {
|
if (file == null) {
|
||||||
Log.error("File not found when trying to read: " + fileUuid);
|
Log.error("File not found when trying to read: " + fileUuid);
|
||||||
return Optional.empty();
|
throw new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to read: " + fileUuid));
|
||||||
}
|
}
|
||||||
|
|
||||||
try (var it = jMapHelper.getIterator(file, IteratorStart.LE, JMapLongKey.of(offset))) {
|
try (var it = jMapHelper.getIterator(file, IteratorStart.LE, JMapLongKey.of(offset))) {
|
||||||
if (!it.hasNext())
|
if (!it.hasNext())
|
||||||
return Optional.of(ByteString.empty());
|
return ByteString.empty();
|
||||||
|
|
||||||
// if (it.peekNextKey().key() != offset) {
|
// if (it.peekNextKey().key() != offset) {
|
||||||
// Log.warnv("Read over the end of file: {0} {1} {2}, next chunk: {3}", fileUuid, offset, length, it.peekNextKey());
|
// Log.warnv("Read over the end of file: {0} {1} {2}, next chunk: {3}", fileUuid, offset, length, it.peekNextKey());
|
||||||
@@ -324,10 +324,10 @@ public class DhfsFileServiceImpl implements DhfsFileService {
|
|||||||
chunk = it.next();
|
chunk = it.next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Optional.of(buf);
|
return buf;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.error("Error reading file: " + fileUuid, e);
|
Log.error("Error reading file: " + fileUuid, e);
|
||||||
return Optional.empty();
|
throw new StatusRuntimeException(Status.INTERNAL.withDescription("Error reading file: " + fileUuid));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -595,7 +595,7 @@ public class DhfsFileServiceImpl implements DhfsFileService {
|
|||||||
public ByteString readlinkBS(JObjectKey uuid) {
|
public ByteString readlinkBS(JObjectKey uuid) {
|
||||||
return jObjectTxManager.executeTx(() -> {
|
return jObjectTxManager.executeTx(() -> {
|
||||||
var fileOpt = remoteTx.getData(File.class, uuid).orElseThrow(() -> new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to readlink: " + uuid)));
|
var fileOpt = remoteTx.getData(File.class, uuid).orElseThrow(() -> new StatusRuntimeException(Status.NOT_FOUND.withDescription("File not found when trying to readlink: " + uuid)));
|
||||||
return read(uuid, 0, Math.toIntExact(size(uuid))).get();
|
return read(uuid, 0, Math.toIntExact(size(uuid)));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
// for (int start = 0; start < all.length(); start++) {
|
// for (int start = 0; start < all.length(); start++) {
|
||||||
// for (int end = start; end <= all.length(); end++) {
|
// for (int end = start; end <= all.length(); end++) {
|
||||||
// var read = fileService.read(fuuid.toString(), start, end - start);
|
// var read = fileService.read(fuuid.toString(), start, end - start);
|
||||||
// Assertions.assertArrayEquals(all.substring(start, end).getBytes(), read.get().toByteArray());
|
// Assertions.assertArrayEquals(all.substring(start, end).getBytes(), read.toByteArray());
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
@@ -112,16 +112,16 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
|
|
||||||
var curMtime = fileService.getattr(uuid).get().mtime();
|
var curMtime = fileService.getattr(uuid).get().mtime();
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
Assertions.assertArrayEquals(new byte[]{2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 2, 8).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 2, 8).toByteArray());
|
||||||
fileService.write(uuid, 4, new byte[]{10, 11, 12});
|
fileService.write(uuid, 4, new byte[]{10, 11, 12});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
fileService.write(uuid, 10, new byte[]{13, 14});
|
fileService.write(uuid, 10, new byte[]{13, 14});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 12, 7, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray());
|
||||||
fileService.write(uuid, 6, new byte[]{15, 16});
|
fileService.write(uuid, 6, new byte[]{15, 16});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 10, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray());
|
||||||
fileService.write(uuid, 3, new byte[]{17, 18});
|
fileService.write(uuid, 3, new byte[]{17, 18});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 17, 18, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 17, 18, 11, 15, 16, 8, 9, 13, 14}, fileService.read(uuid, 0, 12).toByteArray());
|
||||||
|
|
||||||
var newMtime = fileService.getattr(uuid).get().mtime();
|
var newMtime = fileService.getattr(uuid).get().mtime();
|
||||||
Assertions.assertTrue(newMtime > curMtime);
|
Assertions.assertTrue(newMtime > curMtime);
|
||||||
@@ -138,7 +138,7 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
fileService.unlink("/removeTest");
|
fileService.unlink("/removeTest");
|
||||||
Assertions.assertFalse(fileService.open("/removeTest").isPresent());
|
Assertions.assertFalse(fileService.open("/removeTest").isPresent());
|
||||||
@@ -152,12 +152,12 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
fileService.truncate(uuid, 20);
|
fileService.truncate(uuid, 20);
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray());
|
||||||
fileService.write(uuid, 5, new byte[]{10, 11, 12, 13, 14, 15, 16, 17});
|
fileService.write(uuid, 5, new byte[]{10, 11, 12, 13, 14, 15, 16, 17});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@RepeatedTest(100)
|
@RepeatedTest(100)
|
||||||
@@ -169,12 +169,12 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
fileService.truncate(uuid, 20);
|
fileService.truncate(uuid, 20);
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, fileService.read(uuid, 0, 20).toByteArray());
|
||||||
fileService.write(uuid, 10, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 20});
|
fileService.write(uuid, 10, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 20});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, fileService.read(uuid, 0, 20).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, fileService.read(uuid, 0, 20).toByteArray());
|
||||||
} finally {
|
} finally {
|
||||||
fileService.unlink("/truncateTest2");
|
fileService.unlink("/truncateTest2");
|
||||||
}
|
}
|
||||||
@@ -188,10 +188,10 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
fileService.truncate(uuid, 7);
|
fileService.truncate(uuid, 7);
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6,}, fileService.read(uuid, 0, 20).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6,}, fileService.read(uuid, 0, 20).toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -201,14 +201,14 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
Assertions.assertTrue(fileService.rename("/moveTest", "/movedTest"));
|
Assertions.assertTrue(fileService.rename("/moveTest", "/movedTest"));
|
||||||
Assertions.assertFalse(fileService.open("/moveTest").isPresent());
|
Assertions.assertFalse(fileService.open("/moveTest").isPresent());
|
||||||
Assertions.assertTrue(fileService.open("/movedTest").isPresent());
|
Assertions.assertTrue(fileService.open("/movedTest").isPresent());
|
||||||
|
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
||||||
fileService.read(fileService.open("/movedTest").get(), 0, 10).get().toByteArray());
|
fileService.read(fileService.open("/movedTest").get(), 0, 10).toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -221,9 +221,9 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid2 = ret2.get();
|
var uuid2 = ret2.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
fileService.write(uuid2, 0, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29});
|
fileService.write(uuid2, 0, new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29});
|
||||||
Assertions.assertArrayEquals(new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29}, fileService.read(uuid2, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 29}, fileService.read(uuid2, 0, 10).toByteArray());
|
||||||
|
|
||||||
|
|
||||||
jObjectTxManager.run(() -> {
|
jObjectTxManager.run(() -> {
|
||||||
@@ -237,7 +237,7 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
Assertions.assertTrue(fileService.open("/moveOverTest2").isPresent());
|
Assertions.assertTrue(fileService.open("/moveOverTest2").isPresent());
|
||||||
|
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
||||||
fileService.read(fileService.open("/moveOverTest2").get(), 0, 10).get().toByteArray());
|
fileService.read(fileService.open("/moveOverTest2").get(), 0, 10).toByteArray());
|
||||||
|
|
||||||
// await().atMost(5, TimeUnit.SECONDS).until(() -> {
|
// await().atMost(5, TimeUnit.SECONDS).until(() -> {
|
||||||
// jObjectTxManager.run(() -> {
|
// jObjectTxManager.run(() -> {
|
||||||
@@ -255,8 +255,8 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
Assertions.assertArrayEquals(new byte[]{}, fileService.read(uuid, 20, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{}, fileService.read(uuid, 20, 10).toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -266,13 +266,13 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
fileService.write(uuid, 20, new byte[]{10, 11, 12, 13, 14, 15, 16, 17, 18, 19});
|
fileService.write(uuid, 20, new byte[]{10, 11, 12, 13, 14, 15, 16, 17, 18, 19});
|
||||||
Assertions.assertArrayEquals(new byte[]{
|
Assertions.assertArrayEquals(new byte[]{
|
||||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
|
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
|
||||||
}, fileService.read(uuid, 0, 30).get().toByteArray());
|
}, fileService.read(uuid, 0, 30).toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -282,7 +282,7 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
var uuid = ret.get();
|
var uuid = ret.get();
|
||||||
|
|
||||||
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
fileService.write(uuid, 0, new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).get().toByteArray());
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, fileService.read(uuid, 0, 10).toByteArray());
|
||||||
|
|
||||||
// var oldfile = jObjectManager.get(uuid).orElseThrow(IllegalStateException::new);
|
// var oldfile = jObjectManager.get(uuid).orElseThrow(IllegalStateException::new);
|
||||||
// var chunk = oldfile.runReadLocked(JObjectManager.ResolutionStrategy.LOCAL_ONLY, (m, d) -> d.extractRefs()).stream().toList().get(0);
|
// var chunk = oldfile.runReadLocked(JObjectManager.ResolutionStrategy.LOCAL_ONLY, (m, d) -> d.extractRefs()).stream().toList().get(0);
|
||||||
@@ -297,6 +297,6 @@ public abstract class DhfsFileServiceSimpleTestImpl {
|
|||||||
Assertions.assertTrue(fileService.open("/movedTest2").isPresent());
|
Assertions.assertTrue(fileService.open("/movedTest2").isPresent());
|
||||||
|
|
||||||
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
Assertions.assertArrayEquals(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
||||||
fileService.read(fileService.open("/movedTest2").get(), 0, 10).get().toByteArray());
|
fileService.read(fileService.open("/movedTest2").get(), 0, 10).toByteArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -223,8 +223,8 @@ public class DhfsFuse extends FuseStubFS {
|
|||||||
var fileKey = getFromHandle(fi.fh.get());
|
var fileKey = getFromHandle(fi.fh.get());
|
||||||
var read = fileService.read(fileKey, offset, (int) size);
|
var read = fileService.read(fileKey, offset, (int) size);
|
||||||
if (read.isEmpty()) return 0;
|
if (read.isEmpty()) return 0;
|
||||||
UnsafeByteOperations.unsafeWriteTo(read.get(), new JnrPtrByteOutput(jnrPtrByteOutputAccessors, buf, size));
|
UnsafeByteOperations.unsafeWriteTo(read, new JnrPtrByteOutput(jnrPtrByteOutputAccessors, buf, size));
|
||||||
return read.get().size();
|
return read.size();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
Log.error("When reading " + path, e);
|
Log.error("When reading " + path, e);
|
||||||
return -ErrorCodes.EIO();
|
return -ErrorCodes.EIO();
|
||||||
|
|||||||
Reference in New Issue
Block a user