Revision: 8319
          
http://languagetool.svn.sourceforge.net/languagetool/?rev=8319&view=rev
Author:   dnaber
Date:     2012-11-09 00:14:04 +0000 (Fri, 09 Nov 2012)
Log Message:
-----------
small code style cleanup; slightly more robust error handling

Modified Paths:
--------------
    
trunk/JLanguageTool/src/main/java/org/languagetool/server/LanguageToolHttpHandler.java
    
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/api-output.dtd
    
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java

Modified: 
trunk/JLanguageTool/src/main/java/org/languagetool/server/LanguageToolHttpHandler.java
===================================================================
--- 
trunk/JLanguageTool/src/main/java/org/languagetool/server/LanguageToolHttpHandler.java
      2012-11-08 23:35:40 UTC (rev 8318)
+++ 
trunk/JLanguageTool/src/main/java/org/languagetool/server/LanguageToolHttpHandler.java
      2012-11-09 00:14:04 UTC (rev 8319)
@@ -31,6 +31,7 @@
   private static final String CONTENT_TYPE_VALUE = "text/xml; charset=UTF-8";
   private static final String ENCODING = "utf-8";
   private static final int CONTEXT_SIZE = 40; // characters
+  private static final int MIN_LENGTH_FOR_AUTO_DETECTION = 60;  // characters
 
   private final Set<String> allowedIps;  
   private final boolean verbose;
@@ -130,9 +131,8 @@
   
   private static Language detectLanguageOfString(final String text, final 
String fallbackLanguage) {
     // TODO: use identifier.isReasonablyCertain() - but make sure it works!
-    final int MINLENGTHFORAUTODETECTION = 60;
-    if (text.length() < MINLENGTHFORAUTODETECTION && fallbackLanguage != null) 
{
-      System.out.print("auto-detected language is not reasonably certain");
+    if (text.length() < MIN_LENGTH_FOR_AUTO_DETECTION && fallbackLanguage != 
null) {
+      print("Auto-detected language of text with length " + text.length() + " 
is not reasonably certain, using '" + fallbackLanguage + "' as fallback");
       return Language.getLanguageForShortName(fallbackLanguage);
     }
     
@@ -152,15 +152,14 @@
   private void checkText(String text, HttpExchange httpExchange, Map<String, 
String> parameters) throws Exception {
     final String langParam = parameters.get("language");
     final String autodetectParam = parameters.get("autodetect");
-    Language lang;
-    
-    if (langParam == null && autodetectParam == null) {
-      throw new IllegalArgumentException("Missing 'language' parameter. Use 
autodetect=1 for auto-detecting the language of the input text.");
+    if (langParam == null && (autodetectParam == null || 
!autodetectParam.equals("1"))) {
+      throw new IllegalArgumentException("Missing 'language' parameter. 
Specify language or use autodetect=1 for auto-detecting the language of the 
input text.");
     }
     
+    final Language lang;
     if (autodetectParam != null && autodetectParam.equals("1")) {
       lang = detectLanguageOfString(text, langParam);
-      print("auto-detected language: " + lang.getShortNameWithVariant());
+      print("Auto-detected language: " + lang.getShortNameWithVariant());
     } else {
       lang = Language.getLanguageForShortName(langParam);
     }
@@ -205,7 +204,7 @@
     }
     httpExchange.getResponseHeaders().set("Content-Type", CONTENT_TYPE_VALUE);
     //httpExchange.getResponseHeaders().set("Access-Control-Allow-Origin", 
"*");
-    String response = StringTools.ruleMatchesToXML(matches, text,
+    final String response = StringTools.ruleMatchesToXML(matches, text,
             CONTEXT_SIZE, StringTools.XmlPrintMode.NORMAL_XML, lang, 
motherTongue);
     httpExchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, 
response.getBytes(ENCODING).length);
     httpExchange.getResponseBody().write(response.getBytes(ENCODING));
@@ -235,7 +234,7 @@
     return parameters;
   }
 
-  private void print(String s) {
+  private static void print(String s) {
     final SimpleDateFormat dateFormat = new SimpleDateFormat();
     final String now = dateFormat.format(new Date());
     System.out.println(now + " " + s);

Modified: 
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/api-output.dtd
===================================================================
--- 
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/api-output.dtd 
    2012-11-08 23:35:40 UTC (rev 8318)
+++ 
trunk/JLanguageTool/src/main/resources/org/languagetool/resource/api-output.dtd 
    2012-11-09 00:14:04 UTC (rev 8319)
@@ -1,6 +1,6 @@
 <!--
 Simple XML output format for the 'api' option and the HTTP 
-interface of LanguageTool (http://www.languagetool.org). Version 1.2 of the 
XML, 2012-09-19
+interface of LanguageTool (http://www.languagetool.org). Version 1.3 of the 
XML, 2012-11-09
 -->
 
 <!ELEMENT matches ((language)?, (error)*)>

Modified: 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java
===================================================================
--- 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java   
    2012-11-08 23:35:40 UTC (rev 8318)
+++ 
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPServerTest.java   
    2012-11-09 00:14:04 UTC (rev 8319)
@@ -160,7 +160,7 @@
     try {
       server.run();
       try {
-        System.out.println("Testing 'access denied' check now");
+        System.out.println("Testing 'access denied' check now, please ignore 
the exception");
         check(Language.GERMAN, "no ip address allowed, so this cannot work");
         fail();
       } catch (IOException expected) {
@@ -169,7 +169,24 @@
       server.stop();
     }
   }
-  
+
+  @Test
+  public void testMissingLanguageParameter() throws Exception {
+    final HTTPServer server = new HTTPServer(HTTPServer.DEFAULT_PORT, false, 
false);
+    try {
+      server.run();
+      try {
+        System.out.println("Testing 'missing language parameter' now, please 
ignore the exception");
+        final URL url = new URL("http://localhost:"; + HTTPServer.DEFAULT_PORT 
+ "/?text=foo");
+        checkAtUrl(url);
+        fail();
+      } catch (IOException expected) {
+      }
+    } finally {
+      server.stop();
+    }
+  }
+
   private String check(Language lang, String text) throws IOException {
     return check(lang, null, text);
   }
@@ -194,11 +211,15 @@
        urlOptions += "&motherTongue=" + motherTongue.getShortName();
     }
     final URL url = new URL("http://localhost:"; + HTTPServer.DEFAULT_PORT + 
urlOptions);
+    return checkAtUrl(url);
+  }
+
+  private String checkAtUrl(URL url) throws IOException {
     final InputStream stream = (InputStream)url.getContent();
     final String result = StringTools.streamToString(stream, "UTF-8");
     return result;
   }
-  
+
   private String checkWithOptions(Language lang, Language motherTongue, String 
text, 
                  String[] enabledRules, String[] disabledRules) throws 
IOException {
          String urlOptions = "/?language=" + lang.getShortName();

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Languagetool-commits mailing list
Languagetool-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-commits

Reply via email to