diff --git a/tika-parsers/pom.xml b/tika-parsers/pom.xml
index 8dd8591..35b850c 100644
--- a/tika-parsers/pom.xml
+++ b/tika-parsers/pom.xml
@@ -81,6 +81,11 @@
         <version>4.5.3</version>
     </dependency>
     <dependency>
+  		<groupId>edu.ucar</groupId>
+  		<artifactId>grib</artifactId>
+  		<version>4.5.3</version>
+	</dependency>
+    <dependency>
       <groupId>net.sourceforge.jmatio</groupId>
       <artifactId>jmatio</artifactId>
       <version>1.0</version>
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
index 7fc9ae6..4929fe3 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
@@ -23,7 +23,10 @@ import java.io.File;
 import java.util.Collections;
 import java.util.Set;
 import java.util.List;
+
 import org.apache.tika.exception.TikaException;
+import org.apache.tika.io.TemporaryResources;
+import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.Property;
 import org.apache.tika.metadata.TikaCoreProperties;
@@ -64,8 +67,9 @@ public class GribParser extends AbstractParser {
         metadata.set(Metadata.CONTENT_TYPE, GRIB_MIME_TYPE);
     
         //Get grib2 file name from metadata 
-        
-        File gribFile = new File(metadata.get(Metadata.RESOURCE_NAME_KEY));
+        TikaInputStream tis = TikaInputStream.get(stream, new TemporaryResources());
+        File gribFile = tis.getFile(); 
+       
         
         try {
             NetcdfFile ncFile = NetcdfDataset.openFile(gribFile.getAbsolutePath(), null);            
@@ -117,7 +121,7 @@ public class GribParser extends AbstractParser {
             xhtml.endDocument();
              
             } catch (IOException e) {
-            throw new TikaException("NetCDF parse error", e);
+            throw new TikaException("Grib parse error", e);
             } 
         }
         
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
index c5e0861..540d167 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
@@ -17,7 +17,7 @@
  
 package org.apache.tika.parser.grib;
  
- //JDK imports
+//JDK imports
 import static org.junit.Assert.*;
 import java.io.InputStream;
 
@@ -28,7 +28,10 @@ import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.junit.Test;
 import org.xml.sax.ContentHandler;
-import java.io.File;
+
+/**
+ * Test cases to exercise the {@link org.apache.tika.parser.grib.GribParser}.
+ */
 
  public class GribParserTest {
         
@@ -38,20 +41,14 @@ import java.io.File;
         Parser parser = new GribParser();
         Metadata metadata = new Metadata();
         ContentHandler handler = new BodyContentHandler();
-        
-        File gribName = new File("/test-documents/gdas1.forecmwf.2014062612.grib2");
-		
-		metadata.set(Metadata.RESOURCE_NAME_KEY, gribName.getName());
-	    InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2");
+        InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2");
 	    
         try {
             parser.parse(stream, handler, metadata, new ParseContext());
         } finally {
             stream.close();
         }
-        
         assertNotNull(metadata);
-        
         String content = handler.toString();
         assertTrue(content.contains("dimensions:")); 
         assertTrue(content.contains("variables:"));    
