提交 fca64be7 编写于 作者: D darcy

7013420: Project Coin: remove general expression support from try-with-resources statement

Reviewed-by: alanb
上级 9babcaf2
/* /*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -58,30 +58,31 @@ public class Truncate { ...@@ -58,30 +58,31 @@ public class Truncate {
for(int i=0; i<100; i++) { for(int i=0; i<100; i++) {
long testSize = generator.nextInt(1000) + 10; long testSize = generator.nextInt(1000) + 10;
initTestFile(blah, testSize); initTestFile(blah, testSize);
FileChannel fc = (i < 50) ?
new RandomAccessFile(blah, "rw").getChannel() : try (FileChannel fc = (i < 50) ?
FileChannel.open(blah.toPath(), READ, WRITE); new RandomAccessFile(blah, "rw").getChannel() :
try (fc) { FileChannel.open(blah.toPath(), READ, WRITE))
if (fc.size() != testSize) {
throw new RuntimeException("Size failed"); if (fc.size() != testSize)
throw new RuntimeException("Size failed");
long position = generator.nextInt((int)testSize);
fc.position(position); long position = generator.nextInt((int)testSize);
fc.position(position);
long newSize = generator.nextInt((int)testSize);
fc.truncate(newSize); long newSize = generator.nextInt((int)testSize);
fc.truncate(newSize);
if (fc.size() != newSize)
throw new RuntimeException("Truncate failed"); if (fc.size() != newSize)
throw new RuntimeException("Truncate failed");
if (position > newSize) {
if (fc.position() != newSize) if (position > newSize) {
throw new RuntimeException("Position greater than size"); if (fc.position() != newSize)
} else { throw new RuntimeException("Position greater than size");
if (fc.position() != position) } else {
throw new RuntimeException("Truncate changed position"); if (fc.position() != position)
}; throw new RuntimeException("Truncate changed position");
} };
}
} }
} }
...@@ -92,24 +93,24 @@ public class Truncate { ...@@ -92,24 +93,24 @@ public class Truncate {
for (int i=0; i<10; i++) { for (int i=0; i<10; i++) {
long testSize = generator.nextInt(1000) + 10; long testSize = generator.nextInt(1000) + 10;
initTestFile(blah, testSize); initTestFile(blah, testSize);
FileChannel fc = (i < 5) ? try (FileChannel fc = (i < 5) ?
new FileOutputStream(blah, true).getChannel() : new FileOutputStream(blah, true).getChannel() :
FileChannel.open(blah.toPath(), APPEND); FileChannel.open(blah.toPath(), APPEND))
try (fc) { {
// truncate file // truncate file
long newSize = generator.nextInt((int)testSize); long newSize = generator.nextInt((int)testSize);
fc.truncate(newSize); fc.truncate(newSize);
if (fc.size() != newSize) if (fc.size() != newSize)
throw new RuntimeException("Truncate failed"); throw new RuntimeException("Truncate failed");
// write one byte // write one byte
ByteBuffer buf = ByteBuffer.allocate(1); ByteBuffer buf = ByteBuffer.allocate(1);
buf.put((byte)'x'); buf.put((byte)'x');
buf.flip(); buf.flip();
fc.write(buf); fc.write(buf);
if (fc.size() != (newSize+1)) if (fc.size() != (newSize+1))
throw new RuntimeException("Unexpected size"); throw new RuntimeException("Unexpected size");
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册