Author: jm
Date: 2010-09-27 13:26:56 -0700 (Mon, 27 Sep 2010)
New Revision: 22073
Modified:
core3/psi-mi-impl/trunk/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiCyFileFilter.java
core3/psi-mi-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Fixed PsiMiCyFileFilter so it doesn't hang when trying to load a remote
resource when there's no internet connection
Modified:
core3/psi-mi-impl/trunk/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiCyFileFilter.java
===================================================================
---
core3/psi-mi-impl/trunk/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiCyFileFilter.java
2010-09-27 20:07:31 UTC (rev 22072)
+++
core3/psi-mi-impl/trunk/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiCyFileFilter.java
2010-09-27 20:26:56 UTC (rev 22073)
@@ -5,6 +5,8 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
+import java.net.URL;
+import java.net.URLConnection;
import java.util.HashSet;
import java.util.Set;
@@ -17,10 +19,12 @@
private static final String PSI_MI_XML_NAMESPACE = "net:sf:psidev:mi";
private static final int DEFAULT_LINES_TO_CHECK = 20;
+
+ private static final int CONNECTION_TIMEOUT = 500;
- private Set<String> extensions;
- private Set<String> contentTypes;
- private String description;
+ private final Set<String> extensions;
+ private final Set<String> contentTypes;
+ private final String description;
private PsiMiCyFileFilter(String description) {
extensions = new HashSet<String>();
@@ -35,8 +39,11 @@
@Override
public boolean accept(URI uri, DataCategory category) {
+ if (!category.equals(DataCategory.NETWORK)) {
+ return false;
+ }
try {
- return accept(uri.toURL().openStream(), category);
+ return accept(getInputStream(uri.toURL()), category);
} catch (IOException e) {
Logger logger = LoggerFactory.getLogger(getClass());
logger.error("Error while checking header", e);
@@ -44,6 +51,13 @@
}
}
+ private InputStream getInputStream(URL url) throws IOException {
+ URLConnection connection = url.openConnection();
+ connection.setConnectTimeout(CONNECTION_TIMEOUT);
+ connection.connect();
+ return connection.getInputStream();
+ }
+
private boolean checkHeader(InputStream stream) throws IOException {
BufferedReader reader = new BufferedReader(new
InputStreamReader(stream));
int linesToCheck = DEFAULT_LINES_TO_CHECK;
Modified:
core3/psi-mi-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/psi-mi-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2010-09-27 20:07:31 UTC (rev 22072)
+++
core3/psi-mi-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2010-09-27 20:26:56 UTC (rev 22073)
@@ -22,7 +22,7 @@
<context:annotation-config />
<bean id="psiMiFilter"
class="org.cytoscape.psi_mi.internal.plugin.PsiMiCyFileFilter">
- <constructor-arg value="PSI-MI" />
+ <constructor-arg value="PSI-MI files (*.xml)" />
</bean>
<bean id="psiMi1Filter"
class="org.cytoscape.psi_mi.internal.plugin.PsiMiCyFileFilter">
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.