mirror of https://github.com/apache/lucene.git
LUCENE-5858: trunk->branch
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene5858@1621957 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
commit
def0ff7983
|
@ -127,6 +127,10 @@ Bug Fixes
|
||||||
MockDirectoryWrapper to have it simulate a virus checker holding a
|
MockDirectoryWrapper to have it simulate a virus checker holding a
|
||||||
file open and preventing deletion (Robert Muir, Mike McCandless)
|
file open and preventing deletion (Robert Muir, Mike McCandless)
|
||||||
|
|
||||||
|
* LUCENE-5916: Static scope test components should be consistent between
|
||||||
|
tests (and test iterations). Fix for FaultyIndexInput in particular.
|
||||||
|
(Dawid Weiss)
|
||||||
|
|
||||||
Build
|
Build
|
||||||
|
|
||||||
* LUCENE-5909: Smoke tester now has better command line parsing and
|
* LUCENE-5909: Smoke tester now has better command line parsing and
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.lucene.index;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import org.apache.lucene.analysis.MockAnalyzer;
|
import org.apache.lucene.analysis.MockAnalyzer;
|
||||||
import org.apache.lucene.document.Document;
|
import org.apache.lucene.document.Document;
|
||||||
|
@ -58,9 +59,8 @@ public class TestFieldsReader extends LuceneTestCase {
|
||||||
IndexWriter writer = new IndexWriter(dir, conf);
|
IndexWriter writer = new IndexWriter(dir, conf);
|
||||||
writer.addDocument(testDoc);
|
writer.addDocument(testDoc);
|
||||||
writer.close();
|
writer.close();
|
||||||
FaultyIndexInput.doFail = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public static void afterClass() throws Exception {
|
public static void afterClass() throws Exception {
|
||||||
dir.close();
|
dir.close();
|
||||||
|
@ -105,77 +105,97 @@ public class TestFieldsReader extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class FaultyFSDirectory extends BaseDirectory {
|
public class FaultyFSDirectory extends BaseDirectory {
|
||||||
|
|
||||||
Directory fsDir;
|
Directory fsDir;
|
||||||
|
AtomicBoolean doFail = new AtomicBoolean();
|
||||||
|
|
||||||
public FaultyFSDirectory(File dir) {
|
public FaultyFSDirectory(File dir) {
|
||||||
fsDir = newFSDirectory(dir);
|
fsDir = newFSDirectory(dir);
|
||||||
lockFactory = fsDir.getLockFactory();
|
lockFactory = fsDir.getLockFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IndexInput openInput(String name, IOContext context) throws IOException {
|
public IndexInput openInput(String name, IOContext context) throws IOException {
|
||||||
return new FaultyIndexInput(fsDir.openInput(name, context));
|
return new FaultyIndexInput(doFail, fsDir.openInput(name, context));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] listAll() throws IOException {
|
public String[] listAll() throws IOException {
|
||||||
return fsDir.listAll();
|
return fsDir.listAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteFile(String name) throws IOException {
|
public void deleteFile(String name) throws IOException {
|
||||||
fsDir.deleteFile(name);
|
fsDir.deleteFile(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long fileLength(String name) throws IOException {
|
public long fileLength(String name) throws IOException {
|
||||||
return fsDir.fileLength(name);
|
return fsDir.fileLength(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IndexOutput createOutput(String name, IOContext context) throws IOException {
|
public IndexOutput createOutput(String name, IOContext context) throws IOException {
|
||||||
return fsDir.createOutput(name, context);
|
return fsDir.createOutput(name, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sync(Collection<String> names) throws IOException {
|
public void sync(Collection<String> names) throws IOException {
|
||||||
fsDir.sync(names);
|
fsDir.sync(names);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() throws IOException {
|
public void close() throws IOException {
|
||||||
fsDir.close();
|
fsDir.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void startFailing() {
|
||||||
|
doFail.set(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class FaultyIndexInput extends BufferedIndexInput {
|
private class FaultyIndexInput extends BufferedIndexInput {
|
||||||
|
private final AtomicBoolean doFail;
|
||||||
|
|
||||||
IndexInput delegate;
|
IndexInput delegate;
|
||||||
static boolean doFail;
|
|
||||||
int count;
|
int count;
|
||||||
private FaultyIndexInput(IndexInput delegate) {
|
|
||||||
|
private FaultyIndexInput(AtomicBoolean doFail, IndexInput delegate) {
|
||||||
super("FaultyIndexInput(" + delegate + ")", BufferedIndexInput.BUFFER_SIZE);
|
super("FaultyIndexInput(" + delegate + ")", BufferedIndexInput.BUFFER_SIZE);
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
|
this.doFail = doFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void simOutage() throws IOException {
|
private void simOutage() throws IOException {
|
||||||
if (doFail && count++ % 2 == 1) {
|
if (doFail.get() && count++ % 2 == 1) {
|
||||||
throw new IOException("Simulated network outage");
|
throw new IOException("Simulated network outage");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readInternal(byte[] b, int offset, int length) throws IOException {
|
public void readInternal(byte[] b, int offset, int length) throws IOException {
|
||||||
simOutage();
|
simOutage();
|
||||||
delegate.seek(getFilePointer());
|
delegate.seek(getFilePointer());
|
||||||
delegate.readBytes(b, offset, length);
|
delegate.readBytes(b, offset, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void seekInternal(long pos) throws IOException {
|
public void seekInternal(long pos) throws IOException {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long length() {
|
public long length() {
|
||||||
return delegate.length();
|
return delegate.length();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() throws IOException {
|
public void close() throws IOException {
|
||||||
delegate.close();
|
delegate.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FaultyIndexInput clone() {
|
public FaultyIndexInput clone() {
|
||||||
FaultyIndexInput i = new FaultyIndexInput(delegate.clone());
|
FaultyIndexInput i = new FaultyIndexInput(doFail, delegate.clone());
|
||||||
// seek the clone to our current position
|
// seek the clone to our current position
|
||||||
try {
|
try {
|
||||||
i.seek(getFilePointer());
|
i.seek(getFilePointer());
|
||||||
|
@ -188,7 +208,7 @@ public class TestFieldsReader extends LuceneTestCase {
|
||||||
@Override
|
@Override
|
||||||
public IndexInput slice(String sliceDescription, long offset, long length) throws IOException {
|
public IndexInput slice(String sliceDescription, long offset, long length) throws IOException {
|
||||||
IndexInput slice = delegate.slice(sliceDescription, offset, length);
|
IndexInput slice = delegate.slice(sliceDescription, offset, length);
|
||||||
return new FaultyIndexInput(slice);
|
return new FaultyIndexInput(doFail, slice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +217,7 @@ public class TestFieldsReader extends LuceneTestCase {
|
||||||
File indexDir = createTempDir("testfieldswriterexceptions");
|
File indexDir = createTempDir("testfieldswriterexceptions");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Directory dir = new FaultyFSDirectory(indexDir);
|
FaultyFSDirectory dir = new FaultyFSDirectory(indexDir);
|
||||||
IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()))
|
IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()))
|
||||||
.setOpenMode(OpenMode.CREATE);
|
.setOpenMode(OpenMode.CREATE);
|
||||||
IndexWriter writer = new IndexWriter(dir, iwc);
|
IndexWriter writer = new IndexWriter(dir, iwc);
|
||||||
|
@ -207,8 +227,7 @@ public class TestFieldsReader extends LuceneTestCase {
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|
||||||
IndexReader reader = DirectoryReader.open(dir);
|
IndexReader reader = DirectoryReader.open(dir);
|
||||||
|
dir.startFailing();
|
||||||
FaultyIndexInput.doFail = true;
|
|
||||||
|
|
||||||
boolean exc = false;
|
boolean exc = false;
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ org.mortbay.jetty.version = 6.1.26
|
||||||
/org.mortbay.jetty/jetty = ${org.mortbay.jetty.version}
|
/org.mortbay.jetty/jetty = ${org.mortbay.jetty.version}
|
||||||
/org.mortbay.jetty/jetty-util = ${org.mortbay.jetty.version}
|
/org.mortbay.jetty/jetty-util = ${org.mortbay.jetty.version}
|
||||||
|
|
||||||
/org.noggit/noggit = 0.5
|
/org.noggit/noggit = 0.6
|
||||||
/org.objenesis/objenesis = 1.2
|
/org.objenesis/objenesis = 1.2
|
||||||
|
|
||||||
org.ow2.asm.version = 4.1
|
org.ow2.asm.version = 4.1
|
||||||
|
|
|
@ -108,6 +108,7 @@ Carrot2 3.9.0
|
||||||
Velocity 1.7 and Velocity Tools 2.0
|
Velocity 1.7 and Velocity Tools 2.0
|
||||||
Apache UIMA 2.3.1
|
Apache UIMA 2.3.1
|
||||||
Apache ZooKeeper 3.4.6
|
Apache ZooKeeper 3.4.6
|
||||||
|
Noggit 0.6
|
||||||
|
|
||||||
Detailed Change List
|
Detailed Change List
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -154,6 +155,9 @@ Other Changes
|
||||||
* LUCENE-5901: Replaced all occurences of LUCENE_CURRENT with LATEST for luceneMatchVersion.
|
* LUCENE-5901: Replaced all occurences of LUCENE_CURRENT with LATEST for luceneMatchVersion.
|
||||||
(Ryan Ernst)
|
(Ryan Ernst)
|
||||||
|
|
||||||
|
* SOLR-6445: Upgrade Noggit to verion 0.6 to support more flexible JSON input (Noble Paul , Yonik Seeley)
|
||||||
|
|
||||||
|
|
||||||
================== 4.10.0 =================
|
================== 4.10.0 =================
|
||||||
|
|
||||||
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release
|
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release
|
||||||
|
|
|
@ -281,7 +281,32 @@ public class JsonLoaderTest extends SolrTestCaseJ4 {
|
||||||
BufferingRequestProcessor p = new BufferingRequestProcessor(null);
|
BufferingRequestProcessor p = new BufferingRequestProcessor(null);
|
||||||
JsonLoader loader = new JsonLoader();
|
JsonLoader loader = new JsonLoader();
|
||||||
loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
|
loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
|
||||||
|
assertEquals( 2, p.addCommands.size() );
|
||||||
|
doc = "\n" +
|
||||||
|
"\n" +
|
||||||
|
"{bool: true,\n" +
|
||||||
|
" f0: \"v0\",\n" +
|
||||||
|
" f2: {\n" +
|
||||||
|
" \t \"boost\": 2.3,\n" +
|
||||||
|
" \t \"value\": \"test\"\n" +
|
||||||
|
" \t },\n" +
|
||||||
|
"array: [ \"aaa\", \"bbb\" ],\n" +
|
||||||
|
"boosted: {\n" +
|
||||||
|
" \t \"boost\": 6.7,\n" +
|
||||||
|
" \t \"value\": [ \"aaa\", \"bbb\" ]\n" +
|
||||||
|
" \t }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"\n" +
|
||||||
|
"\n" +
|
||||||
|
" {f1: \"v1\",\n" +
|
||||||
|
" f1: \"v2\",\n" +
|
||||||
|
" f2: null\n" +
|
||||||
|
" }\n";
|
||||||
|
req = req("json.command","false");
|
||||||
|
rsp = new SolrQueryResponse();
|
||||||
|
p = new BufferingRequestProcessor(null);
|
||||||
|
loader = new JsonLoader();
|
||||||
|
loader.load(req, rsp, new ContentStreamBase.StringStream(doc), p);
|
||||||
|
|
||||||
assertEquals( 2, p.addCommands.size() );
|
assertEquals( 2, p.addCommands.size() );
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
8e6e65624d2e09a30190c6434abe23b7d4e5413c
|
|
|
@ -0,0 +1 @@
|
||||||
|
fa94a59c44b39ee710f3c9451750119e432326c0
|
Loading…
Reference in New Issue