Skip to content

Commit

Permalink
fix failure message to mention version.bin instead of index.drd not e…
Browse files Browse the repository at this point in the history
…xists msg (apache#4102)
  • Loading branch information
himanshug authored and fjy committed Mar 23, 2017
1 parent 4b9f975 commit c9fc7d1
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 3 deletions.
15 changes: 12 additions & 3 deletions api/src/main/java/io/druid/segment/SegmentUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,18 @@ public static int getVersionFromDir(File inDir) throws IOException

final File indexFile = new File(inDir, "index.drd");
int version;
try (InputStream in = new FileInputStream(indexFile)) {
version = in.read();
if (indexFile.exists()) {
try (InputStream in = new FileInputStream(indexFile)) {
version = in.read();
}
return version;
}
return version;

throw new IOException(
String.format(
"Invalid segment dir [%s]. Can't find either of version.bin or index.drd.",
inDir
)
);
}
}
61 changes: 61 additions & 0 deletions api/src/test/java/io/druid/segment/SegmentUtilsTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Licensed to Metamarkets Group Inc. (Metamarkets) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. Metamarkets licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.druid.segment;

import com.google.common.primitives.Ints;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import java.io.File;
import java.io.IOException;

/**
*/
public class SegmentUtilsTest
{
@Rule
public final TemporaryFolder tempFolder = new TemporaryFolder();

@Test
public void testVersionBin() throws Exception
{
File dir = tempFolder.newFolder();
byte[] bytes = Ints.toByteArray(9);
FileUtils.writeByteArrayToFile(new File(dir, "version.bin"), Ints.toByteArray(9));
Assert.assertEquals(9, SegmentUtils.getVersionFromDir(dir));
}

@Test
public void testIndexDrd() throws Exception
{
File dir = tempFolder.newFolder();
FileUtils.writeByteArrayToFile(new File(dir, "index.drd"), new byte[]{(byte) 0x8});
Assert.assertEquals(8, SegmentUtils.getVersionFromDir(dir));
}

@Test(expected = IOException.class)
public void testException() throws Exception
{
SegmentUtils.getVersionFromDir(tempFolder.newFolder());
}
}

0 comments on commit c9fc7d1

Please sign in to comment.