Mike Drob created LUCENE-10227:
----------------------------------

             Summary: FilterPath.resolve(Path) doesn't work
                 Key: LUCENE-10227
                 URL: https://issues.apache.org/jira/browse/LUCENE-10227
             Project: Lucene - Core
          Issue Type: Bug
            Reporter: Mike Drob


Short reproducing sample that captures the error I encounter when trying to 
write a unit test:
{code:java}
package org.apache.lucene.mockfile;

import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;

import java.nio.file.Path;

public class TestFilterPath extends LuceneTestCase {

  @Test
  public void testMultiwrap() throws Exception {
    Path source = LuceneTestCase.createTempDir();
    Path child = source.resolve("child");
    assertEquals(source, child.getParent());

    child = source.resolve(Path.of("child")); // This line throws exception
    assertEquals(source, child.getParent());
  }
}
{code}

When running this test (on my Mac) I get the following:

{noformat}
mismatch, expected: FilterPath, got: class sun.nio.fs.UnixPath
java.nio.file.ProviderMismatchException: mismatch, expected: FilterPath, got: 
class sun.nio.fs.UnixPath
        at 
__randomizedtesting.SeedInfo.seed([318296D60FE95435:125A6A9E9053DCC3]:0)
        at org.apache.lucene.mockfile.FilterPath.toDelegate(FilterPath.java:292)
        at org.apache.lucene.mockfile.FilterPath.resolve(FilterPath.java:151)
        at 
org.apache.lucene.mockfile.TestFilterPath.testMultiwrap(TestFilterPath.java:16)
{noformat}

Part of the problem here might be that {{createTempDir()}} gives me a 
{{FilterPath}} wrapped four layers deep.
Part of the problem might be that resolve calls toDelegate which is too strict 
about what it would accept?

I'm not sure what the intent of all of these wrappings is, so I'm not 
completely sure how to fix it.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to