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/03/09 18:16:16 UTC
svn commit: r1079894 -
/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
Author: jukka
Date: Wed Mar 9 17:16:16 2011
New Revision: 1079894
URL: http://svn.apache.org/viewvc?rev=1079894&view=rev
Log:
TIKA-600: [patch] suspect transferable code
Fix based on a patch by Dave Brosius
Modified:
tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java?rev=1079894&r1=1079893&r2=1079894&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/gui/ParsingTransferHandler.java Wed Mar 9 17:16:16 2011
@@ -21,10 +21,11 @@ import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.event.InputEvent;
import java.io.File;
-import java.io.InputStream;
+import java.io.IOException;
import java.util.List;
import java.util.StringTokenizer;
import java.util.ArrayList;
+import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@@ -32,8 +33,8 @@ import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
+import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.MetadataHelper;
/**
* Utility class that turns drag-and-drop events into Tika parse requests.
@@ -77,26 +78,18 @@ class ParsingTransferHandler extends Tra
public boolean importData(
JComponent component, Transferable transferable) {
try {
- List<File> files = null;
if (transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
- files = (List<File>) transferable.getTransferData(
- DataFlavor.javaFileListFlavor);
+ importFiles((List<File>) transferable.getTransferData(
+ DataFlavor.javaFileListFlavor));
} else if (transferable.isDataFlavorSupported(urlListFlavor)) {
Object data = transferable.getTransferData(urlListFlavor);
+ URL url = new URL(data.toString());
Metadata metadata = new Metadata();
- InputStream stream = MetadataHelper.getInputStream(
- new URL(data.toString()), metadata);
+ TikaInputStream stream = TikaInputStream.get(url, metadata);
tika.importStream(stream, metadata);
} else if (transferable.isDataFlavorSupported(uriListFlavor)) {
- files = uriToFileList(
- transferable.getTransferData(uriListFlavor).toString());
- }
-
- for (File file : files) {
- Metadata metadata = new Metadata();
- InputStream stream = MetadataHelper.getInputStream(
- file.toURI().toURL(), metadata);
- tika.importStream(stream, metadata);
+ importFiles(uriToFileList(
+ transferable.getTransferData(uriListFlavor)));
}
return true;
} catch (Exception e) {
@@ -104,6 +97,15 @@ class ParsingTransferHandler extends Tra
}
}
+ private void importFiles(List<File> files)
+ throws MalformedURLException, IOException {
+ for (File file : files) {
+ Metadata metadata = new Metadata();
+ TikaInputStream stream = TikaInputStream.get(file, metadata);
+ tika.importStream(stream, metadata);
+ }
+ }
+
public void exportAsDrag(JComponent arg0, InputEvent arg1, int arg2) {
delegate.exportAsDrag(arg0, arg1, arg2);
}
@@ -121,9 +123,9 @@ class ParsingTransferHandler extends Tra
return delegate.getVisualRepresentation(arg0);
}
- private static List<File> uriToFileList(String data) {
+ private static List<File> uriToFileList(Object data) {
List<File> list = new ArrayList<File>();
- StringTokenizer st = new StringTokenizer(data, "\r\n");
+ StringTokenizer st = new StringTokenizer(data.toString(), "\r\n");
while (st.hasMoreTokens())
{
String s = st.nextToken();