You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/07/01 19:31:18 UTC
svn commit: r1498582 - in /manifoldcf/trunk:
connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/
connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/
connectors/hdfs/connector/src/main/...
Author: kwright
Date: Mon Jul 1 17:31:18 2013
New Revision: 1498582
URL: http://svn.apache.org/r1498582
Log:
Work on HDFS output connector. First, introduce real sessions. Second, add javascript checks for null parameters. Finally, fix up error handling.
Added:
manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java (with props)
Modified:
manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java
manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputParam.java
manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_en_US.properties
manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_ja_JP.properties
manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editConfiguration.js
manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editSpecification.js
manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java
manifoldcf/trunk/framework/crawler-ui/src/main/webapp/viewoutput.jsp
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java Mon Jul 1 17:31:18 2013
@@ -23,6 +23,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InterruptedIOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URI;
@@ -113,9 +114,30 @@ public class HDFSOutputConnector extends
public void connect(ConfigParams configParams) {
super.connect(configParams);
- String nameNode = configParams.getParameter(ParameterEnum.NAMENODE.name());
+ }
+
+ /** Close the connection. Call this before discarding the connection.
+ */
+ @Override
+ public void disconnect() throws ManifoldCFException {
+ try {
+ fileSystem.close();
+ } catch(IOException ex) {
+ throw new ManifoldCFException(ex);
+ }
+ config.clear();
+ super.disconnect();
+ }
+
+ /** Set up a session */
+ protected void getSession() throws ManifoldCFException, ServiceInterruption {
+ String nameNode = params.getParameter(ParameterEnum.NAMENODE.name());
+ if (nameNode == null)
+ throw new ManifoldCFException("Namenode must be specified");
- String user = configParams.getParameter(ParameterEnum.USER.name());
+ String user = params.getParameter(ParameterEnum.USER.name());
+ if (user == null)
+ throw new ManifoldCFException("User must be specified");
/*
* make Configuration
@@ -133,31 +155,16 @@ public class HDFSOutputConnector extends
* get connection to HDFS
*/
try {
- fileSystem = FileSystem.get(new URI(nameNode), config, user);
+ fileSystem = FileSystem.get(new URI(nameNode), config, user);
} catch (URISyntaxException e) {
- Logging.agents.warn("HDFS: Node name error: " + e.getMessage(), e);
+ handleURISyntaxException(e);
+ throw new ManifoldCFException(e.getMessage(),e);
} catch (IOException e) {
- Logging.agents.warn("HDFS: File system error: " + e.getMessage(), e);
+ handleIOException(e);
} catch (InterruptedException e) {
- Logging.agents.warn("HDFS: File system error: " + e.getMessage(), e);
- }
- }
-
- /** Close the connection. Call this before discarding the connection.
- */
- @Override
- public void disconnect() throws ManifoldCFException {
- try {
- fileSystem.close();
- } catch(IOException ex) {
- throw new ManifoldCFException(ex);
+ throw new ManifoldCFException(e.getMessage(),ManifoldCFException.INTERRUPTED);
}
- config.clear();
- super.disconnect();
- }
- /** Set up a session */
- protected void getSession() throws ManifoldCFException, ServiceInterruption {
}
/** Test the connection. Returns a string describing the connection integrity.
@@ -249,19 +256,20 @@ public class HDFSOutputConnector extends
/*
* write file
*/
- byte buf[] = new byte[1024];
+ byte buf[] = new byte[65536];
int len;
while((len = input.read(buf)) != -1) {
output.write(buf, 0, len);
}
output.flush();
} catch (JSONException e) {
+ handleJSONException(e);
return DOCUMENTSTATUS_REJECTED;
} catch (URISyntaxException e) {
+ handleURISyntaxException(e);
return DOCUMENTSTATUS_REJECTED;
- } catch (NullPointerException e) {
- return DOCUMENTSTATUS_REJECTED;
} catch (IOException e) {
+ handleIOException(e);
return DOCUMENTSTATUS_REJECTED;
} finally {
try {
@@ -314,9 +322,11 @@ public class HDFSOutputConnector extends
fileSystem.delete(path, true);
}
} catch (JSONException e) {
+ handleJSONException(e);
} catch (URISyntaxException e) {
- } catch (NullPointerException e) {
+ handleURISyntaxException(e);
} catch (IOException e) {
+ handleIOException(e);
}
activities.recordActivity(null, REMOVE_ACTIVITY, null, documentURI, "OK", null);
@@ -499,9 +509,8 @@ public class HDFSOutputConnector extends
* @param documentURI
* @return
* @throws URISyntaxException
- * @throws NullPointerException
*/
- final private String documentURItoFilePath(String documentURI) throws URISyntaxException, NullPointerException {
+ final private String documentURItoFilePath(String documentURI) throws URISyntaxException {
StringBuffer path = new StringBuffer();
URI uri = null;
@@ -516,7 +525,7 @@ public class HDFSOutputConnector extends
path.append(uri.getHost());
if (uri.getPort() != -1) {
path.append(":");
- path.append(uri.getPort());
+ path.append(Integer.toString(uri.getPort()));
}
if (uri.getRawPath() != null) {
if (uri.getRawPath().length() == 0) {
@@ -525,7 +534,7 @@ public class HDFSOutputConnector extends
path.append(uri.getRawPath());
} else {
for (String name : uri.getRawPath().split("/")) {
- if (name.length() > 0) {
+ if (name != null && name.length() > 0) {
path.append("/");
path.append(name);
}
@@ -539,7 +548,7 @@ public class HDFSOutputConnector extends
} else {
if (uri.getRawSchemeSpecificPart() != null) {
for (String name : uri.getRawSchemeSpecificPart().split("/")) {
- if (name.length() > 0) {
+ if (name != null && name.length() > 0) {
path.append("/");
path.append(name);
}
@@ -552,4 +561,32 @@ public class HDFSOutputConnector extends
}
return path.toString();
}
+
+ /** Handle URISyntaxException */
+ protected static void handleURISyntaxException(URISyntaxException e)
+ throws ManifoldCFException, ServiceInterruption
+ {
+ Logging.agents.error("Namenode URI is malformed: "+e.getMessage(),e);
+ throw new ManifoldCFException("Namenode URI is malformed: "+e.getMessage(),e);
+ }
+
+ /** Handle JSONException */
+ protected static void handleJSONException(JSONException e)
+ throws ManifoldCFException, ServiceInterruption
+ {
+ Logging.agents.error("JSON parsing error: "+e.getMessage(),e);
+ throw new ManifoldCFException("JSON parsing error: "+e.getMessage(),e);
+ }
+
+ /** Handle IOException */
+ protected static void handleIOException(IOException e)
+ throws ManifoldCFException, ServiceInterruption
+ {
+ if (!(e instanceof java.net.SocketTimeoutException) && (e instanceof InterruptedIOException)) {
+ throw new ManifoldCFException("Interrupted: " + e.getMessage(), e, ManifoldCFException.INTERRUPTED);
+ }
+ long currentTime = System.currentTimeMillis();
+ throw new ServiceInterruption("IO exception: "+e.getMessage(), e, currentTime + 300000L, currentTime + 3 * 60 * 60000L,-1,false);
+ }
+
}
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputParam.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputParam.java?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputParam.java (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputParam.java Mon Jul 1 17:31:18 2013
@@ -22,27 +22,12 @@ package org.apache.manifoldcf.agents.out
import java.util.HashMap;
import java.util.Map;
-import org.apache.manifoldcf.agents.output.hdfs.HDFSOutputParam.ParameterEnum;
-
/**
* Parameters data for the elasticsearch output connector.
*/
public class HDFSOutputParam extends HashMap<ParameterEnum, String>
{
- /** Parameters constants */
- public enum ParameterEnum {
- NAMENODE("hdfs://localhost:9000"),
- USER(""),
- ROOTPATH("/tmp");
-
- final protected String defaultValue;
-
- private ParameterEnum(String defaultValue) {
- this.defaultValue = defaultValue;
- }
- }
-
private static final long serialVersionUID = -140994685772720029L;
protected HDFSOutputParam(ParameterEnum[] params) {
Added: manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java?rev=1498582&view=auto
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java (added)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java Mon Jul 1 17:31:18 2013
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF 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 org.apache.manifoldcf.agents.output.hdfs;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/** Parameters constants */
+public enum ParameterEnum {
+ NAMENODE("hdfs://localhost:9000"),
+ USER(""),
+ ROOTPATH("");
+
+ final protected String defaultValue;
+
+ private ParameterEnum(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+}
Propchange: manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: manifoldcf/trunk/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/ParameterEnum.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_en_US.properties?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_en_US.properties (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_en_US.properties Mon Jul 1 17:31:18 2013
@@ -16,8 +16,11 @@
HDFSOutputConnector.ServerTabName=Server
HDFSOutputConnector.NameNode=Name Node:
HDFSOutputConnector.User=User:
+HDFSOutputConnector.NameNodeURICannotBeNull=Name node URI cannot be null
+HDFSOutputConnector.UserCannotBeNull=User cannot be null
HDFSOutputConnector.PathTabName=Output Path
HDFSOutputConnector.Path=Output Path:
HDFSOutputConnector.RootPath=Root path:
+HDFSOutputConnector.RootPathCannotBeNull=Root path cannot be null
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_ja_JP.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_ja_JP.properties?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_ja_JP.properties (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_ja_JP.properties Mon Jul 1 17:31:18 2013
@@ -16,7 +16,11 @@
HDFSOutputConnector.ServerTabName=ãµã¼ãã¼
HDFSOutputConnector.NameNode=ãã¼ã ãã¼ãï¼
HDFSOutputConnector.User=ã¦ã¼ã¶ã¼:
+HDFSOutputConnector.NameNodeURICannotBeNull=Name node URI cannot be null
+HDFSOutputConnector.UserCannotBeNull=User cannot be null
HDFSOutputConnector.PathTabName=åºåãã¹
HDFSOutputConnector.Path=åºåãã¹ï¼
HDFSOutputConnector.RootPath=ã«ã¼ããã¹ï¼
+HDFSOutputConnector.RootPathCannotBeNull=Root path cannot be null
+
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editConfiguration.js
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editConfiguration.js?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editConfiguration.js (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editConfiguration.js Mon Jul 1 17:31:18 2013
@@ -17,5 +17,23 @@
<script type="text/javascript">
<!--
+function checkConfigForSave()
+{
+ if (editconnection.namenode.value == "")
+ {
+ alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.NameNodeURICannotBeNull'))");
+ SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.ServerTabName'))");
+ editconnection.namenode.focus();
+ return false;
+ }
+ if (editconnection.user.value == "")
+ {
+ alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.UserCannotBeNull'))");
+ SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.ServerTabName'))");
+ editconnection.user.focus();
+ return false;
+ }
+ return true;
+}
//-->
</script>
\ No newline at end of file
Modified: manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editSpecification.js
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editSpecification.js?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editSpecification.js (original)
+++ manifoldcf/trunk/connectors/hdfs/connector/src/main/resources/org/apache/manifoldcf/agents/output/hdfs/editSpecification.js Mon Jul 1 17:31:18 2013
@@ -17,5 +17,16 @@
<script type="text/javascript">
<!--
+function checkOutputSpecificationForSave()
+{
+ if (editjob.rootpath.value == "")
+ {
+ alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.RootPathCannotBeNull'))");
+ SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('HDFSOutputConnector.PathTabName'))");
+ editjob.rootpath.focus();
+ return false;
+ }
+ return true;
+}
//-->
</script>
\ No newline at end of file
Modified: manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java (original)
+++ manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java Mon Jul 1 17:31:18 2013
@@ -49,6 +49,7 @@ public abstract class BaseOutputConnecto
/** Return the list of activities that this connector supports (i.e. writes into the log).
*@return the list.
*/
+ @Override
public String[] getActivitiesList()
{
return new String[0];
@@ -61,6 +62,7 @@ public abstract class BaseOutputConnecto
*@param command is the command, which is taken directly from the API request.
*@return true if the resource is found, false if not. In either case, output may be filled in.
*/
+ @Override
public boolean requestInfo(Configuration output, String command)
throws ManifoldCFException
{
@@ -72,6 +74,7 @@ public abstract class BaseOutputConnecto
* is a good time to synchronize things. It is called whenever a job is either completed or aborted.
*@param activities is the handle to an object that the implementer of an output connector may use to perform operations, such as logging processing activity.
*/
+ @Override
public void noteJobComplete(IOutputNotifyActivity activities)
throws ManifoldCFException, ServiceInterruption
{
@@ -84,6 +87,7 @@ public abstract class BaseOutputConnecto
*@param mimeType is the mime type of the document.
*@return true if the mime type is indexable by this connector.
*/
+ @Override
public boolean checkMimeTypeIndexable(String outputDescription, String mimeType)
throws ManifoldCFException, ServiceInterruption
{
@@ -108,6 +112,7 @@ public abstract class BaseOutputConnecto
*@param localFile is the local file to check.
*@return true if the file is indexable.
*/
+ @Override
public boolean checkDocumentIndexable(String outputDescription, File localFile)
throws ManifoldCFException, ServiceInterruption
{
@@ -132,6 +137,7 @@ public abstract class BaseOutputConnecto
*@param length is the length of the document.
*@return true if the file is indexable.
*/
+ @Override
public boolean checkLengthIndexable(String outputDescription, long length)
throws ManifoldCFException, ServiceInterruption
{
@@ -144,6 +150,7 @@ public abstract class BaseOutputConnecto
*@param url is the URL of the document.
*@return true if the file is indexable.
*/
+ @Override
public boolean checkURLIndexable(String outputDescription, String url)
throws ManifoldCFException, ServiceInterruption
{
@@ -161,6 +168,7 @@ public abstract class BaseOutputConnecto
*@return a string, of unlimited length, which uniquely describes output configuration and specification in such a way that if two such strings are equal,
* the document will not need to be sent again to the output data store.
*/
+ @Override
public String getOutputDescription(OutputSpecification spec)
throws ManifoldCFException, ServiceInterruption
{
@@ -182,6 +190,7 @@ public abstract class BaseOutputConnecto
*@param activities is the handle to an object that the implementer of an output connector may use to perform operations, such as logging processing activity.
*@return the document status (accepted or permanently rejected).
*/
+ @Override
public int addOrReplaceDocument(String documentURI, String outputDescription, RepositoryDocument document, String authorityNameString, IOutputAddActivity activities)
throws ManifoldCFException, ServiceInterruption
{
@@ -195,6 +204,7 @@ public abstract class BaseOutputConnecto
*@param outputDescription is the last description string that was constructed for this document by the getOutputDescription() method above.
*@param activities is the handle to an object that the implementer of an output connector may use to perform operations, such as logging processing activity.
*/
+ @Override
public void removeDocument(String documentURI, String outputDescription, IOutputRemoveActivity activities)
throws ManifoldCFException, ServiceInterruption
{
@@ -217,6 +227,7 @@ public abstract class BaseOutputConnecto
*@param os is the current output specification for this job.
*@param tabsArray is an array of tab names. Add to this array any tab names that are specific to the connector.
*/
+ @Override
public void outputSpecificationHeader(IHTTPOutput out, Locale locale, OutputSpecification os, List<String> tabsArray)
throws ManifoldCFException, IOException
{
@@ -256,6 +267,7 @@ public abstract class BaseOutputConnecto
*@param os is the current output specification for this job.
*@param tabName is the current tab name.
*/
+ @Override
public void outputSpecificationBody(IHTTPOutput out, Locale locale, OutputSpecification os, String tabName)
throws ManifoldCFException, IOException
{
@@ -284,6 +296,7 @@ public abstract class BaseOutputConnecto
*@param os is the current output specification for this job.
*@return null if all is well, or a string error message if there is an error that should prevent saving of the job (and cause a redirection to an error page).
*/
+ @Override
public String processSpecificationPost(IPostParameters variableContext, Locale locale, OutputSpecification os)
throws ManifoldCFException
{
@@ -311,6 +324,7 @@ public abstract class BaseOutputConnecto
*@param locale is the preferred local of the output.
*@param os is the current output specification for this job.
*/
+ @Override
public void viewSpecification(IHTTPOutput out, Locale locale, OutputSpecification os)
throws ManifoldCFException, IOException
{
Modified: manifoldcf/trunk/framework/crawler-ui/src/main/webapp/viewoutput.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/viewoutput.jsp?rev=1498582&r1=1498581&r2=1498582&view=diff
==============================================================================
--- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/viewoutput.jsp (original)
+++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/viewoutput.jsp Mon Jul 1 17:31:18 2013
@@ -121,6 +121,7 @@
}
catch (ManifoldCFException e)
{
+ e.printStackTrace();
connectionStatus = Messages.getString(pageContext.getRequest().getLocale(),"viewoutput.Threwexception")+" '"+org.apache.manifoldcf.ui.util.Encoder.bodyEscape(e.getMessage())+"'";
}
%>