You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2011/10/07 10:52:53 UTC

svn commit: r1179964 - /tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java

Author: jukka
Date: Fri Oct  7 08:52:53 2011
New Revision: 1179964

URL: http://svn.apache.org/viewvc?rev=1179964&view=rev
Log:
TIKA-448: Tika FLVParser hangs

Use read() intead of skip() to avoid hanging

Modified:
    tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java

Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java?rev=1179964&r1=1179963&r2=1179964&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/video/FLVParser.java Fri Oct  7 08:52:53 2011
@@ -104,7 +104,7 @@ public class FLVParser extends AbstractP
             return readAMFStrictArray(input);
         case 11:
             final Date date = new Date((long) input.readDouble());
-            input.skip(2); // time zone
+            input.readShort(); // time zone
             return date;
         case 13:
             return "UNDEFINED";
@@ -205,8 +205,8 @@ public class FLVParser extends AbstractP
             }
 
             int datalen = readUInt24(datainput); //body length
-            stream.skip(4); // timestamp
-            stream.skip(3); // streamid
+            readUInt32(datainput); // timestamp
+            readUInt24(datainput); // streamid
 
             if (type == TYPE_METADATA) {
                 // found metadata Tag, read content to buffer
@@ -242,9 +242,8 @@ public class FLVParser extends AbstractP
 
             } else {
                 // Tag was not metadata, skip over data we cannot handle
-                for (int skiplen = 0; skiplen < datalen;) {
-                    long currentSkipLen = datainput.skip(datalen - skiplen);
-                    skiplen += currentSkipLen;
+                for (int i = 0; i < datalen; i++) {
+                    datainput.readByte();
                 }
             }