git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@1407 f203690c-595d-4dc9-a70b-905162fa7fd2master
@@ -532,6 +532,7 @@ public class IndexData { | |||
* @param creator description of the indexes to write | |||
* @param buffer Buffer to write to | |||
*/ | |||
@SuppressWarnings("resource") | |||
protected static void writeDefinition( | |||
TableMutator creator, ByteBuffer buffer, | |||
TableMutator.IndexDataState idxDataState, ByteBuffer rootPageBuffer) | |||
@@ -2659,36 +2660,32 @@ public class IndexData { | |||
_between = between; | |||
} | |||
public DataPage getDataPage() { | |||
DataPage getDataPage() { | |||
return _dataPage; | |||
} | |||
public int getIndex() { | |||
int getIndex() { | |||
return _idx; | |||
} | |||
public int getNextIndex() { | |||
int getNextIndex() { | |||
// note, _idx does not need to be advanced if it was pointing at a | |||
// between position | |||
return(_between ? _idx : (_idx + 1)); | |||
} | |||
public int getPrevIndex() { | |||
int getPrevIndex() { | |||
// note, we ignore the between flag here because the index will be | |||
// pointing at the correct next index in either the between or | |||
// non-between case | |||
return(_idx - 1); | |||
} | |||
public Entry getEntry() { | |||
Entry getEntry() { | |||
return _entry; | |||
} | |||
public boolean isBetween() { | |||
return _between; | |||
} | |||
public boolean equalsEntry(Entry entry) { | |||
boolean equalsEntry(Entry entry) { | |||
return _entry.equals(entry); | |||
} | |||
@@ -23,7 +23,6 @@ import java.util.AbstractList; | |||
import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.HashMap; | |||
import java.util.HashSet; | |||
import java.util.Iterator; | |||
import java.util.LinkedHashMap; | |||
import java.util.LinkedList; | |||
@@ -31,7 +30,6 @@ import java.util.List; | |||
import java.util.Map; | |||
import java.util.Queue; | |||
import java.util.RandomAccess; | |||
import java.util.Set; | |||
import static com.healthmarketscience.jackcess.impl.IndexData.*; | |||
import com.healthmarketscience.jackcess.impl.IndexData.DataPage; |
@@ -53,7 +53,6 @@ import com.healthmarketscience.jackcess.Table; | |||
import com.healthmarketscience.jackcess.expr.Identifier; | |||
import com.healthmarketscience.jackcess.util.ErrorHandler; | |||
import com.healthmarketscience.jackcess.util.ExportUtil; | |||
import org.apache.commons.lang3.builder.ToStringBuilder; | |||
import org.apache.commons.logging.Log; | |||
import org.apache.commons.logging.LogFactory; | |||
@@ -73,7 +73,6 @@ public class Expressionator | |||
} | |||
private static final String FUNC_START_DELIM = "("; | |||
private static final String FUNC_END_DELIM = ")"; | |||
private static final String OPEN_PAREN = "("; | |||
private static final String CLOSE_PAREN = ")"; | |||
private static final String FUNC_PARAM_SEP = ","; |
@@ -116,13 +116,14 @@ public class MemFileChannel extends FileChannel | |||
public static MemFileChannel newChannel(File file, String mode) | |||
throws IOException | |||
{ | |||
RandomAccessFile raf = null; | |||
FileChannel in = null; | |||
try { | |||
return newChannel(in = new RandomAccessFile( | |||
file, RO_CHANNEL_MODE).getChannel(), | |||
mode); | |||
raf = new RandomAccessFile(file, RO_CHANNEL_MODE); | |||
return newChannel(in = raf.getChannel(), mode); | |||
} finally { | |||
ByteUtil.closeQuietly(in); | |||
ByteUtil.closeQuietly(raf); | |||
} | |||
} | |||
@@ -199,7 +199,6 @@ public class DatabaseTest extends TestCase | |||
Map<String,Object> row2 = createTestRowMap("Tim2"); | |||
Map<String,Object> row3 = createTestRowMap("Tim3"); | |||
Table table = db.getTable("Test"); | |||
@SuppressWarnings("unchecked") | |||
List<Map<String,Object>> rows = Arrays.asList(row1, row2, row3); | |||
table.addRowsFromMaps(rows); | |||
assertRowCount(3, table); |
@@ -25,7 +25,6 @@ import java.util.Map; | |||
import java.util.UUID; | |||
import static com.healthmarketscience.jackcess.Database.*; | |||
import com.healthmarketscience.jackcess.InvalidValueException; | |||
import com.healthmarketscience.jackcess.impl.DatabaseImpl; | |||
import static com.healthmarketscience.jackcess.impl.JetFormatTest.*; | |||
import com.healthmarketscience.jackcess.impl.PropertyMapImpl; |
@@ -16,14 +16,7 @@ limitations under the License. | |||
package com.healthmarketscience.jackcess; | |||
import java.io.DataInputStream; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.io.OutputStream; | |||
import java.io.PrintWriter; | |||
import java.io.*; | |||
import java.lang.reflect.Field; | |||
import java.nio.ByteBuffer; | |||
import java.nio.channels.FileChannel; | |||
@@ -31,24 +24,13 @@ import java.nio.charset.Charset; | |||
import java.time.Instant; | |||
import java.time.LocalDateTime; | |||
import java.time.ZoneId; | |||
import java.util.ArrayList; | |||
import java.util.Arrays; | |||
import java.util.Calendar; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.TimeZone; | |||
import static com.healthmarketscience.jackcess.Database.*; | |||
import java.util.*; | |||
import java.util.stream.StreamSupport; | |||
import com.healthmarketscience.jackcess.Database.FileFormat; | |||
import com.healthmarketscience.jackcess.complex.ComplexValueForeignKey; | |||
import com.healthmarketscience.jackcess.impl.ByteUtil; | |||
import com.healthmarketscience.jackcess.impl.DatabaseImpl; | |||
import com.healthmarketscience.jackcess.impl.IndexData; | |||
import com.healthmarketscience.jackcess.impl.IndexImpl; | |||
import com.healthmarketscience.jackcess.impl.JetFormatTest; | |||
import com.healthmarketscience.jackcess.impl.*; | |||
import com.healthmarketscience.jackcess.impl.JetFormatTest.TestDB; | |||
import com.healthmarketscience.jackcess.impl.RowIdImpl; | |||
import com.healthmarketscience.jackcess.impl.RowImpl; | |||
import com.healthmarketscience.jackcess.util.MemFileChannel; | |||
import org.junit.Assert; | |||
@@ -264,11 +246,8 @@ public class TestUtil | |||
} | |||
public static int countRows(Table table) throws Exception { | |||
int rtn = 0; | |||
for(Map<String, Object> row : CursorBuilder.createCursor(table)) { | |||
rtn++; | |||
} | |||
return rtn; | |||
Cursor cursor = CursorBuilder.createCursor(table); | |||
return (int) StreamSupport.stream(cursor.spliterator(), false).count(); | |||
} | |||
public static void assertTable( |
@@ -18,7 +18,6 @@ package com.healthmarketscience.jackcess.impl; | |||
import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.Comparator; | |||
import java.util.List; | |||
import java.util.Map; | |||
@@ -167,25 +167,26 @@ public class CodecHandlerTest extends TestCase | |||
throws Exception | |||
{ | |||
long dbLen = dbFile.length(); | |||
FileChannel fileChannel = new RandomAccessFile(dbFile, "rw").getChannel(); | |||
ByteBuffer bb = ByteBuffer.allocate(pageSize) | |||
.order(PageChannel.DEFAULT_BYTE_ORDER); | |||
for(long offset = pageSize; offset < dbLen; offset += pageSize) { | |||
bb.clear(); | |||
fileChannel.read(bb, offset); | |||
try (RandomAccessFile randomAccessFile = new RandomAccessFile(dbFile, "rw"); | |||
FileChannel fileChannel = randomAccessFile.getChannel()) { | |||
ByteBuffer bb = ByteBuffer.allocate(pageSize) | |||
.order(PageChannel.DEFAULT_BYTE_ORDER); | |||
for(long offset = pageSize; offset < dbLen; offset += pageSize) { | |||
bb.clear(); | |||
fileChannel.read(bb, offset); | |||
int pageNumber = (int)(offset / pageSize); | |||
if(simple) { | |||
simpleEncode(bb.array(), bb.array(), pageNumber, 0, pageSize); | |||
} else { | |||
fullEncode(bb.array(), bb.array(), pageNumber); | |||
} | |||
int pageNumber = (int)(offset / pageSize); | |||
if(simple) { | |||
simpleEncode(bb.array(), bb.array(), pageNumber, 0, pageSize); | |||
} else { | |||
fullEncode(bb.array(), bb.array(), pageNumber); | |||
bb.rewind(); | |||
fileChannel.write(bb, offset); | |||
} | |||
bb.rewind(); | |||
fileChannel.write(bb, offset); | |||
} | |||
fileChannel.close(); | |||
} | |||
private static void simpleEncode(byte[] inBuffer, byte[] outBuffer, |
@@ -214,7 +214,7 @@ public class LongValueTest extends TestCase | |||
public void testUnicodeCompression() throws Exception | |||
{ | |||
File dbFile = new File("src/test/data/V2003/testUnicodeCompV2003.mdb"); | |||
Database db = open(Database.FileFormat.V2003, new File("src/test/data/V2003/testUnicodeCompV2003.mdb"), true); | |||
Database db = open(Database.FileFormat.V2003, dbFile, true); | |||
StringBuilder sb = new StringBuilder(127); | |||
for(int i = 1; i <= 0xFF; ++i) { |
@@ -19,15 +19,12 @@ package com.healthmarketscience.jackcess.util; | |||
import java.util.ArrayList; | |||
import java.util.Arrays; | |||
import java.util.List; | |||
import java.util.Map; | |||
import com.healthmarketscience.jackcess.Column; | |||
import com.healthmarketscience.jackcess.ColumnBuilder; | |||
import com.healthmarketscience.jackcess.CursorBuilder; | |||
import com.healthmarketscience.jackcess.DataType; | |||
import com.healthmarketscience.jackcess.Database; | |||
import com.healthmarketscience.jackcess.Database.FileFormat; | |||
import com.healthmarketscience.jackcess.IndexCursor; | |||
import com.healthmarketscience.jackcess.PropertyMap; | |||
import com.healthmarketscience.jackcess.Row; | |||
import com.healthmarketscience.jackcess.Table; |
@@ -41,7 +41,6 @@ public class RowFilterTest extends TestCase | |||
super(name); | |||
} | |||
@SuppressWarnings("unchecked") | |||
public void testFilter() throws Exception | |||
{ | |||
Row row0 = createExpectedRow(ID_COL, 0, COL1, "foo", COL2, 13, COL3, "bar"); |