Author: totaro
Date: Thu Jun 11 00:12:32 2015
New Revision: 1684801
URL: http://svn.apache.org/r1684801
Log:
TIKA-1654 Reset cTAKES CAS into CTAKESParser (Fix for TIKA-1645)
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java?rev=1684801&r1=1684800&r2=1684801&view=diff
==============================================================================
---
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java
(original)
+++
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESContentHandler.java
Thu Jun 11 00:12:32 2015
@@ -97,11 +97,15 @@ public class CTAKESContentHandler extend
// create a JCas, given an AE
JCas jcas = CTAKESUtils.getJCas(ae);
+ // get metadata to process
StringBuilder metaText = new StringBuilder();
- for (String name : config.getMetadata()) {
- for (String value : metadata.getValues(name)) {
- metaText.append(value);
- metaText.append(System.lineSeparator());
+ String[] metadataToProcess = config.getMetadata();
+ if (metadataToProcess != null) {
+ for (String name : config.getMetadata()) {
+ for (String value : metadata.getValues(name)) {
+ metaText.append(value);
+ metaText.append(System.lineSeparator());
+ }
}
}
@@ -132,8 +136,9 @@ public class CTAKESContentHandler extend
CTAKESUtils.serialize(config.getSerializerType(),
config.isPrettyPrint(), config.getOutputStream());
}
} catch (Exception e) {
- e.printStackTrace();
throw new SAXException(e.getMessage());
+ } finally {
+ CTAKESUtils.resetCAS();
}
}
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java?rev=1684801&r1=1684800&r2=1684801&view=diff
==============================================================================
---
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java
(original)
+++
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESParser.java
Thu Jun 11 00:12:32 2015
@@ -38,13 +38,13 @@ import org.xml.sax.SAXException;
* <code>AutoDetectParser parser = new AutoDetectParser(new
CTAKESParser());</code>
* <p>It can also be used by giving a Tika Config file similar to:
* <code>
- * >properties>
- * >parsers>
- * >parser class="org.apache.tika.parser.ctakes.CTAKESParser">
- * >parser class="org.apache.tika.parser.DefaultParser"/>
- * >/parser>
- * >/parsers>
- * >/properties>
+ * <properties>
+ * <parsers>
+ * <parser class="org.apache.tika.parser.ctakes.CTAKESParser">
+ * <parser class="org.apache.tika.parser.DefaultParser"/>
+ * </parser>
+ * </parsers>
+ * </properties>
* </code>
* <p>Because this is a Parser Decorator, and not a normal Parser in
* it's own right, it isn't normally selected via the Parser Service Loader.
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
URL:
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java?rev=1684801&r1=1684800&r2=1684801&view=diff
==============================================================================
---
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
(original)
+++
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/ctakes/CTAKESUtils.java
Thu Jun 11 00:12:32 2015
@@ -238,4 +238,29 @@ public class CTAKESUtils {
jcas.reset();
jcas = null;
}
+
+ /**
+ * Resets the CAS (Common Analysis System), emptying it of all content.
+ */
+ public static void resetCAS() {
+ if (jcas != null) {
+ jcas.reset();
+ }
+ }
+
+ /**
+ * Resets the AE (AnalysisEngine), releasing all resources held by the
+ * current AE.
+ */
+ public static void resetAE() {
+ if (ae != null) {
+ ae.destroy();
+ ae = null;
+ }
+
+ if (jcas != null) {
+ jcas.reset();
+ jcas = null;
+ }
+ }
}