Kirk Lund created GEODE-9178:
--------------------------------

             Summary: ClassPathLoaderTest > testZeroLengthFile intermittently 
fails and touches filesystem
                 Key: GEODE-9178
                 URL: https://issues.apache.org/jira/browse/GEODE-9178
             Project: Geode
          Issue Type: Bug
            Reporter: Kirk Lund


PR failure: https://concourse.apachegeode-ci.info/builds/27301
{noformat}
> Task :geode-core:test

org.apache.geode.internal.classloader.ClassPathLoaderTest > testZeroLengthFile 
FAILED
    java.lang.AssertionError: 
    Expecting actual throwable to be an instance of:
      java.lang.IllegalArgumentException
    but was:
      java.lang.NullPointerException
        at java.io.File.<init>(File.java:365)
        at 
org.apache.geode.deployment.internal.JarDeployer.getNextVersionedJarFile(JarDeployer.java:101)
        at 
org.apache.geode.deployment.internal.JarDeployer.deployWithoutRegistering(JarDeployer.java:84)
        ...(59 remaining lines not displayed - this can be changed with 
Assertions.setMaxStackTraceElementsDisplayed)
        at 
org.apache.geode.internal.classloader.ClassPathLoaderTest.testZeroLengthFile(ClassPathLoaderTest.java:109)
{noformat}
ClassPathLoaderTest also uses TemporaryFolder and uses the filesystem which 
does not belong in a "Unit Test":
{noformat}
  @Test
  public void testZeroLengthFile() throws IOException {
    File zeroFile = tempFolder.newFile("JarDeployerDUnitZLF.jar");
    zeroFile.createNewFile();

    JarDeploymentService jarDeploymentService =
        JarDeploymentServiceFactory.getJarDeploymentServiceInstance();
    assertThatThrownBy(() -> {
      Deployment deployment =
          new Deployment("JarDeployerDUnitZLF.jar", "test", 
Instant.now().toString());
      deployment.setFile(zeroFile);
      jarDeploymentService.deploy(
          deployment);
    }).isInstanceOf(IllegalArgumentException.class);

    byte[] validBytes = new 
ClassBuilder().createJarFromName("JarDeployerDUnitZLF1");
    File validFile = tempFolder.newFile("JarDeployerDUnitZLF1.jar");
    IOUtils.copy(new ByteArrayInputStream(validBytes), new 
FileOutputStream(validFile));

    Set<File> files = new HashSet<>();
    files.add(validFile);
    files.add(zeroFile);

    assertThatThrownBy(() -> {
      for (File file : files) {
        Deployment deployment = new Deployment(file.getName(), "test", 
Instant.now().toString());
        deployment.setFile(file);
        jarDeploymentService.deploy(deployment);
      }
    }).isInstanceOf(IllegalArgumentException.class);

    // clean up the deployed files
    jarDeploymentService.listDeployed()
        .forEach(deployment -> jarDeploymentService
            .undeployByDeploymentName(deployment.getDeploymentName()));
  }
{noformat}





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to