Java Code Examples for java.nio.channels.SeekableByteChannel#truncate()
The following examples show how to use
java.nio.channels.SeekableByteChannel#truncate() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RedissonBinaryStreamTest.java From redisson with Apache License 2.0 | 6 votes |
@Test public void testChannelTruncate() throws IOException { RBinaryStream stream = redisson.getBinaryStream("test"); SeekableByteChannel c = stream.getChannel(); c.write(ByteBuffer.wrap(new byte[]{1, 2, 3, 4, 5, 6, 7})); assertThat(c.size()).isEqualTo(7); c.truncate(3); c.position(0); c.truncate(10); ByteBuffer b = ByteBuffer.allocate(3); c.read(b); byte[] bb = new byte[3]; b.flip(); b.get(bb); assertThat(c.size()).isEqualTo(3); assertThat(bb).isEqualTo(new byte[]{1, 2, 3}); }
Example 2
Source File: ReplayCachePrecise.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 3
Source File: IOUtilities.java From sis with Apache License 2.0 | 5 votes |
/** * Truncates the given output stream at its current position. * This method works with Apache SIS implementations backed (sometime indirectly) by {@link SeekableByteChannel}. * Callers may need to {@linkplain java.io.Flushable#flush() flush} the stream before to invoke this method. * * @param stream the output stream or writable channel to truncate. * @return whether this method has been able to truncate the given stream. * @throws IOException if an error occurred while truncating the stream. */ public static boolean truncate(AutoCloseable stream) throws IOException { if (stream instanceof OutputStreamAdapter) { stream = ((OutputStreamAdapter) stream).output; } if (stream instanceof ChannelDataOutput) { stream = ((ChannelDataOutput) stream).channel; } if (stream instanceof SeekableByteChannel) { final SeekableByteChannel s = (SeekableByteChannel) stream; s.truncate(s.position()); return true; } return false; }
Example 4
Source File: ReplayCachePrecise.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 5
Source File: ReplayCachePrecise.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 6
Source File: ReplayCachePrecise.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 7
Source File: ReplayCachePrecise.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 8
Source File: ReplayCachePrecise.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 9
Source File: ReplayCachePrecise.java From hottub with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 10
Source File: ReplayCachePrecise.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 11
Source File: ReplayCachePrecise.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "HASH", "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "HASH", "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 12
Source File: ReplayCachePrecise.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 13
Source File: FilePlugin.java From trufflesqueak with MIT License | 5 votes |
@TruffleBoundary(transferToInterpreterOnException = false) private static void truncate(final SeekableByteChannel channel, final long to) { try { channel.truncate(to); } catch (IllegalArgumentException | IOException e) { log("Failed to truncate file", e); throw PrimitiveFailed.GENERIC_ERROR; } }
Example 14
Source File: ReplayCachePrecise.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 15
Source File: JournaledCoalescer.java From emissary with Apache License 2.0 | 5 votes |
/** * Copies all bytes from all paths that match to an output stream. * * @param journal The journal to combine in the output stream * @param rolledOutput The OutputStream object to use */ protected void combineFiles(Journal journal, SeekableByteChannel rolledOutput) throws IOException { long startPos = rolledOutput.position(); JournalEntry last = journal.getLastEntry(); if (last == null) { LOG.debug("Empty Journal encountered. {}", journal); return; } long offset = last.getOffset(); Path p = Paths.get(last.getVal()); LOG.debug("Reading from path {}", p); try (FileChannel part = FileChannel.open(p, READ)) { long partSize = Files.size(p); if (partSize < last.getOffset()) { JournalEntry lastGood = journal.getLastValidEntry(partSize); offset = lastGood.getOffset(); LOG.warn("The bgpart file, {}, likely lost data due to a crash. Part size: {}, Expected {}, Actual: {}", last.getVal(), partSize, last.getOffset(), offset); } long xfer; // for loop due to contract of channel.transferTo() for (long count = offset; count > 0L;) { xfer = part.transferTo(part.position(), count, rolledOutput); part.position(part.position() + xfer); count -= xfer; if (part.position() == partSize && count > 0L) { throw new IOException("Premature EOF. Expected " + offset + ", but only transferred " + partSize); } } LOG.debug("Successfully appended {} bytes from {} to output file.", offset, p); } catch (IOException ex) { LOG.error("Exception attempting to transfer {} bytes from {} to output", offset, p.toString(), ex); renameToError(p); renameToError(journal.getJournalPath()); rolledOutput.truncate(startPos); rolledOutput.position(startPos); } }
Example 16
Source File: ReplayCachePrecise.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }
Example 17
Source File: ReplayCachePrecise.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
public static void main(String[] args) throws Exception { AuthTimeWithHash a1 = new AuthTimeWithHash(client, server, time(0), 0, "1111111111111111"); AuthTimeWithHash a2 = new AuthTimeWithHash(client, server, time(0), 0, "2222222222222222"); KerberosTime now = new KerberosTime(time(0)*1000L); // When all new styles, must exact match ReplayCache cache = ReplayCache.getInstance("dfl:./c1"); cache.checkAndStore(now, a1); cache.checkAndStore(now, a2); // When only old style in cache, partial match cache = ReplayCache.getInstance("dfl:./c2"); cache.checkAndStore(now, a1); // A small surgery to remove the new style from the cache file SeekableByteChannel ch = Files.newByteChannel(Paths.get("c2"), StandardOpenOption.WRITE, StandardOpenOption.READ); ch.position(6); ch.write(ByteBuffer.wrap(a1.encode(false))); ch.truncate(ch.position()); ch.close(); try { cache.checkAndStore(now, a2); throw new Exception(); } catch (KrbException ke) { // Correct System.out.println(ke); } }