You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fg...@apache.org on 2010/03/12 13:17:37 UTC

svn commit: r922231 - in /incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src: main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java

Author: fguillaume
Date: Fri Mar 12 12:17:37 2010
New Revision: 922231

URL: http://svn.apache.org/viewvc?rev=922231&view=rev
Log:
CMIS-156: don't crash on invalid MIME types

Modified:
    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java?rev=922231&r1=922230&r2=922231&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java Fri Mar 12 12:17:37 2010
@@ -31,6 +31,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
+import javax.activation.MimeType;
 import javax.xml.namespace.QName;
 
 import org.apache.abdera.factory.Factory;
@@ -552,7 +553,7 @@ public abstract class CMISObjectsCollect
         } catch (ResponseContextException e) {
             return createErrorResponse(e);
         } catch (IllegalArgumentException e) {
-           return createErrorResponse(new ResponseContextException(400, e));
+            return createErrorResponse(new ResponseContextException(400, e));
         } catch (ConstraintViolationException e) {
             return createErrorResponse(new ResponseContextException(409, e));
         } catch (CMISRuntimeException e) {
@@ -758,7 +759,17 @@ public abstract class CMISObjectsCollect
     @Override
     public String getContentType(ObjectEntry object) {
         try {
-            return (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
+            String mimeType = (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
+            // make sure it's a valid MIME type otherwise Abdera will throw
+            try {
+                new MimeType(mimeType).toString();
+            } catch (Exception e) {
+                log.error("Object " + object.getId() + " has invalid "
+                        + Property.CONTENT_STREAM_MIME_TYPE + " '" + mimeType
+                        + "', will be served as 'application/octet-stream'");
+                mimeType = "application/octet-stream";
+            }
+            return mimeType;
         } catch (IllegalArgumentException e) {
             return null;
         }

Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java?rev=922231&r1=922230&r2=922231&view=diff
==============================================================================
--- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java (original)
+++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java Fri Mar 12 12:17:37 2010
@@ -83,6 +83,8 @@ public abstract class AtomPubServerTestC
 
     protected static String doc3id;
 
+    protected static String doc4id;
+
     protected RepositoryService repositoryService;
 
     public Server server;
@@ -188,6 +190,15 @@ public abstract class AtomPubServerTestC
         doc3.save();
         doc3id = doc3.getId();
 
+        Document doc4 = folder2.newDocument("doc");
+        doc4.setName("doc4");
+        doc4.setValue("title", "doc 4 title");
+        cs = new SimpleContentStream(TEST_FILE_CONTENT.getBytes("UTF-8"),
+                "invalid_mime", "doc4.txt");
+        doc4.setContentStream(cs);
+        doc4.save();
+        doc4id = doc4.getId();
+
         conn.close();
         return repo;
     }
@@ -453,6 +464,17 @@ public abstract class AtomPubServerTestC
         method.releaseConnection();
     }
 
+    public void testBadContentType() throws Exception {
+        HttpMethod method = new GetMethod(base + "/file/" + doc4id);
+        int status = new HttpClient().executeMethod(method);
+        assertEquals(HttpStatus.SC_OK, status);
+        assertEquals("application/octet-stream", method.getResponseHeader(
+                "Content-Type").getValue());
+        byte[] body = method.getResponseBody();
+        assertEquals(TEST_FILE_CONTENT, new String(body, "UTF-8"));
+        method.releaseConnection();
+    }
+
     public void testQueryPOST() throws Exception {
         EntityProvider provider = new QueryEntityProvider("SELECT * FROM doc",
                 true, null, null);



Re: svn commit: r922231 - in /incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src: main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java

Posted by Dominique Pfister <do...@day.com>.
I can :) Should be fine now.

Dominique

On Tue, Mar 16, 2010 at 5:48 PM, Florent Guillaume <fg...@nuxeo.com> wrote:
> Argh yes, I missed that :)
> Do you want me to fix it or can you do it?
>
> Thanks,
> Florent
>
> 2010/3/16 Dominique Pfister <do...@day.com>:
>> Hi Florent,
>>
>> Your valid mime-type check now produces a log messages for every
>> non-document or document that has no content stream mime type set
>> (cmis:contentStreamMimeType is null), such as:
>>
>> 17:22:52,231 ERROR [CMISObjectsCollection] Object
>> 2e683c0a-f0e3-43fd-bbef-4b88745275af has invalid
>> cmis:contentStreamMimeType 'null', will be served as
>> 'application/octet-stream'
>>
>> I guess the object value should first be checked against null, what do
>> you think?
>>
>> Kind regards
>> Dominique
>>
>> On Fri, Mar 12, 2010 at 1:17 PM,  <fg...@apache.org> wrote:
>>> Author: fguillaume
>>> Date: Fri Mar 12 12:17:37 2010
>>> New Revision: 922231
>>>
>>> URL: http://svn.apache.org/viewvc?rev=922231&view=rev
>>> Log:
>>> CMIS-156: don't crash on invalid MIME types
>>>
>>> Modified:
>>>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
>>>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
>>>
>>> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
>>> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java?rev=922231&r1=922230&r2=922231&view=diff
>>> ==============================================================================
>>> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java (original)
>>> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java Fri Mar 12 12:17:37 2010
>>> @@ -31,6 +31,7 @@ import java.util.LinkedList;
>>>  import java.util.List;
>>>  import java.util.Map;
>>>
>>> +import javax.activation.MimeType;
>>>  import javax.xml.namespace.QName;
>>>
>>>  import org.apache.abdera.factory.Factory;
>>> @@ -552,7 +553,7 @@ public abstract class CMISObjectsCollect
>>>         } catch (ResponseContextException e) {
>>>             return createErrorResponse(e);
>>>         } catch (IllegalArgumentException e) {
>>> -           return createErrorResponse(new ResponseContextException(400, e));
>>> +            return createErrorResponse(new ResponseContextException(400, e));
>>>         } catch (ConstraintViolationException e) {
>>>             return createErrorResponse(new ResponseContextException(409, e));
>>>         } catch (CMISRuntimeException e) {
>>> @@ -758,7 +759,17 @@ public abstract class CMISObjectsCollect
>>>     @Override
>>>     public String getContentType(ObjectEntry object) {
>>>         try {
>>> -            return (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
>>> +            String mimeType = (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
>>> +            // make sure it's a valid MIME type otherwise Abdera will throw
>>> +            try {
>>> +                new MimeType(mimeType).toString();
>>> +            } catch (Exception e) {
>>> +                log.error("Object " + object.getId() + " has invalid "
>>> +                        + Property.CONTENT_STREAM_MIME_TYPE + " '" + mimeType
>>> +                        + "', will be served as 'application/octet-stream'");
>>> +                mimeType = "application/octet-stream";
>>> +            }
>>> +            return mimeType;
>>>         } catch (IllegalArgumentException e) {
>>>             return null;
>>>         }
>>>
>>> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
>>> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java?rev=922231&r1=922230&r2=922231&view=diff
>>> ==============================================================================
>>> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java (original)
>>> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java Fri Mar 12 12:17:37 2010
>>> @@ -83,6 +83,8 @@ public abstract class AtomPubServerTestC
>>>
>>>     protected static String doc3id;
>>>
>>> +    protected static String doc4id;
>>> +
>>>     protected RepositoryService repositoryService;
>>>
>>>     public Server server;
>>> @@ -188,6 +190,15 @@ public abstract class AtomPubServerTestC
>>>         doc3.save();
>>>         doc3id = doc3.getId();
>>>
>>> +        Document doc4 = folder2.newDocument("doc");
>>> +        doc4.setName("doc4");
>>> +        doc4.setValue("title", "doc 4 title");
>>> +        cs = new SimpleContentStream(TEST_FILE_CONTENT.getBytes("UTF-8"),
>>> +                "invalid_mime", "doc4.txt");
>>> +        doc4.setContentStream(cs);
>>> +        doc4.save();
>>> +        doc4id = doc4.getId();
>>> +
>>>         conn.close();
>>>         return repo;
>>>     }
>>> @@ -453,6 +464,17 @@ public abstract class AtomPubServerTestC
>>>         method.releaseConnection();
>>>     }
>>>
>>> +    public void testBadContentType() throws Exception {
>>> +        HttpMethod method = new GetMethod(base + "/file/" + doc4id);
>>> +        int status = new HttpClient().executeMethod(method);
>>> +        assertEquals(HttpStatus.SC_OK, status);
>>> +        assertEquals("application/octet-stream", method.getResponseHeader(
>>> +                "Content-Type").getValue());
>>> +        byte[] body = method.getResponseBody();
>>> +        assertEquals(TEST_FILE_CONTENT, new String(body, "UTF-8"));
>>> +        method.releaseConnection();
>>> +    }
>>> +
>>>     public void testQueryPOST() throws Exception {
>>>         EntityProvider provider = new QueryEntityProvider("SELECT * FROM doc",
>>>                 true, null, null);
>>>
>>>
>>>
>>
>
>
>
> --
> Florent Guillaume, Director of R&D, Nuxeo
> Open Source, Java EE based, Enterprise Content Management (ECM)
> http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87
>

Re: svn commit: r922231 - in /incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src: main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java

Posted by Florent Guillaume <fg...@nuxeo.com>.
Argh yes, I missed that :)
Do you want me to fix it or can you do it?

Thanks,
Florent

2010/3/16 Dominique Pfister <do...@day.com>:
> Hi Florent,
>
> Your valid mime-type check now produces a log messages for every
> non-document or document that has no content stream mime type set
> (cmis:contentStreamMimeType is null), such as:
>
> 17:22:52,231 ERROR [CMISObjectsCollection] Object
> 2e683c0a-f0e3-43fd-bbef-4b88745275af has invalid
> cmis:contentStreamMimeType 'null', will be served as
> 'application/octet-stream'
>
> I guess the object value should first be checked against null, what do
> you think?
>
> Kind regards
> Dominique
>
> On Fri, Mar 12, 2010 at 1:17 PM,  <fg...@apache.org> wrote:
>> Author: fguillaume
>> Date: Fri Mar 12 12:17:37 2010
>> New Revision: 922231
>>
>> URL: http://svn.apache.org/viewvc?rev=922231&view=rev
>> Log:
>> CMIS-156: don't crash on invalid MIME types
>>
>> Modified:
>>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
>>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
>>
>> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
>> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java?rev=922231&r1=922230&r2=922231&view=diff
>> ==============================================================================
>> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java (original)
>> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java Fri Mar 12 12:17:37 2010
>> @@ -31,6 +31,7 @@ import java.util.LinkedList;
>>  import java.util.List;
>>  import java.util.Map;
>>
>> +import javax.activation.MimeType;
>>  import javax.xml.namespace.QName;
>>
>>  import org.apache.abdera.factory.Factory;
>> @@ -552,7 +553,7 @@ public abstract class CMISObjectsCollect
>>         } catch (ResponseContextException e) {
>>             return createErrorResponse(e);
>>         } catch (IllegalArgumentException e) {
>> -           return createErrorResponse(new ResponseContextException(400, e));
>> +            return createErrorResponse(new ResponseContextException(400, e));
>>         } catch (ConstraintViolationException e) {
>>             return createErrorResponse(new ResponseContextException(409, e));
>>         } catch (CMISRuntimeException e) {
>> @@ -758,7 +759,17 @@ public abstract class CMISObjectsCollect
>>     @Override
>>     public String getContentType(ObjectEntry object) {
>>         try {
>> -            return (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
>> +            String mimeType = (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
>> +            // make sure it's a valid MIME type otherwise Abdera will throw
>> +            try {
>> +                new MimeType(mimeType).toString();
>> +            } catch (Exception e) {
>> +                log.error("Object " + object.getId() + " has invalid "
>> +                        + Property.CONTENT_STREAM_MIME_TYPE + " '" + mimeType
>> +                        + "', will be served as 'application/octet-stream'");
>> +                mimeType = "application/octet-stream";
>> +            }
>> +            return mimeType;
>>         } catch (IllegalArgumentException e) {
>>             return null;
>>         }
>>
>> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
>> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java?rev=922231&r1=922230&r2=922231&view=diff
>> ==============================================================================
>> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java (original)
>> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java Fri Mar 12 12:17:37 2010
>> @@ -83,6 +83,8 @@ public abstract class AtomPubServerTestC
>>
>>     protected static String doc3id;
>>
>> +    protected static String doc4id;
>> +
>>     protected RepositoryService repositoryService;
>>
>>     public Server server;
>> @@ -188,6 +190,15 @@ public abstract class AtomPubServerTestC
>>         doc3.save();
>>         doc3id = doc3.getId();
>>
>> +        Document doc4 = folder2.newDocument("doc");
>> +        doc4.setName("doc4");
>> +        doc4.setValue("title", "doc 4 title");
>> +        cs = new SimpleContentStream(TEST_FILE_CONTENT.getBytes("UTF-8"),
>> +                "invalid_mime", "doc4.txt");
>> +        doc4.setContentStream(cs);
>> +        doc4.save();
>> +        doc4id = doc4.getId();
>> +
>>         conn.close();
>>         return repo;
>>     }
>> @@ -453,6 +464,17 @@ public abstract class AtomPubServerTestC
>>         method.releaseConnection();
>>     }
>>
>> +    public void testBadContentType() throws Exception {
>> +        HttpMethod method = new GetMethod(base + "/file/" + doc4id);
>> +        int status = new HttpClient().executeMethod(method);
>> +        assertEquals(HttpStatus.SC_OK, status);
>> +        assertEquals("application/octet-stream", method.getResponseHeader(
>> +                "Content-Type").getValue());
>> +        byte[] body = method.getResponseBody();
>> +        assertEquals(TEST_FILE_CONTENT, new String(body, "UTF-8"));
>> +        method.releaseConnection();
>> +    }
>> +
>>     public void testQueryPOST() throws Exception {
>>         EntityProvider provider = new QueryEntityProvider("SELECT * FROM doc",
>>                 true, null, null);
>>
>>
>>
>



-- 
Florent Guillaume, Director of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

Re: svn commit: r922231 - in /incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src: main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java

Posted by Dominique Pfister <do...@day.com>.
Hi Florent,

Your valid mime-type check now produces a log messages for every
non-document or document that has no content stream mime type set
(cmis:contentStreamMimeType is null), such as:

17:22:52,231 ERROR [CMISObjectsCollection] Object
2e683c0a-f0e3-43fd-bbef-4b88745275af has invalid
cmis:contentStreamMimeType 'null', will be served as
'application/octet-stream'

I guess the object value should first be checked against null, what do
you think?

Kind regards
Dominique

On Fri, Mar 12, 2010 at 1:17 PM,  <fg...@apache.org> wrote:
> Author: fguillaume
> Date: Fri Mar 12 12:17:37 2010
> New Revision: 922231
>
> URL: http://svn.apache.org/viewvc?rev=922231&view=rev
> Log:
> CMIS-156: don't crash on invalid MIME types
>
> Modified:
>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
>    incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
>
> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java
> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java?rev=922231&r1=922230&r2=922231&view=diff
> ==============================================================================
> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java (original)
> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/main/java/org/apache/chemistry/atompub/server/CMISObjectsCollection.java Fri Mar 12 12:17:37 2010
> @@ -31,6 +31,7 @@ import java.util.LinkedList;
>  import java.util.List;
>  import java.util.Map;
>
> +import javax.activation.MimeType;
>  import javax.xml.namespace.QName;
>
>  import org.apache.abdera.factory.Factory;
> @@ -552,7 +553,7 @@ public abstract class CMISObjectsCollect
>         } catch (ResponseContextException e) {
>             return createErrorResponse(e);
>         } catch (IllegalArgumentException e) {
> -           return createErrorResponse(new ResponseContextException(400, e));
> +            return createErrorResponse(new ResponseContextException(400, e));
>         } catch (ConstraintViolationException e) {
>             return createErrorResponse(new ResponseContextException(409, e));
>         } catch (CMISRuntimeException e) {
> @@ -758,7 +759,17 @@ public abstract class CMISObjectsCollect
>     @Override
>     public String getContentType(ObjectEntry object) {
>         try {
> -            return (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
> +            String mimeType = (String) object.getValue(Property.CONTENT_STREAM_MIME_TYPE);
> +            // make sure it's a valid MIME type otherwise Abdera will throw
> +            try {
> +                new MimeType(mimeType).toString();
> +            } catch (Exception e) {
> +                log.error("Object " + object.getId() + " has invalid "
> +                        + Property.CONTENT_STREAM_MIME_TYPE + " '" + mimeType
> +                        + "', will be served as 'application/octet-stream'");
> +                mimeType = "application/octet-stream";
> +            }
> +            return mimeType;
>         } catch (IllegalArgumentException e) {
>             return null;
>         }
>
> Modified: incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java
> URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java?rev=922231&r1=922230&r2=922231&view=diff
> ==============================================================================
> --- incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java (original)
> +++ incubator/chemistry/trunk/chemistry/chemistry-atompub-server/src/test/java/org/apache/chemistry/atompub/server/AtomPubServerTestCase.java Fri Mar 12 12:17:37 2010
> @@ -83,6 +83,8 @@ public abstract class AtomPubServerTestC
>
>     protected static String doc3id;
>
> +    protected static String doc4id;
> +
>     protected RepositoryService repositoryService;
>
>     public Server server;
> @@ -188,6 +190,15 @@ public abstract class AtomPubServerTestC
>         doc3.save();
>         doc3id = doc3.getId();
>
> +        Document doc4 = folder2.newDocument("doc");
> +        doc4.setName("doc4");
> +        doc4.setValue("title", "doc 4 title");
> +        cs = new SimpleContentStream(TEST_FILE_CONTENT.getBytes("UTF-8"),
> +                "invalid_mime", "doc4.txt");
> +        doc4.setContentStream(cs);
> +        doc4.save();
> +        doc4id = doc4.getId();
> +
>         conn.close();
>         return repo;
>     }
> @@ -453,6 +464,17 @@ public abstract class AtomPubServerTestC
>         method.releaseConnection();
>     }
>
> +    public void testBadContentType() throws Exception {
> +        HttpMethod method = new GetMethod(base + "/file/" + doc4id);
> +        int status = new HttpClient().executeMethod(method);
> +        assertEquals(HttpStatus.SC_OK, status);
> +        assertEquals("application/octet-stream", method.getResponseHeader(
> +                "Content-Type").getValue());
> +        byte[] body = method.getResponseBody();
> +        assertEquals(TEST_FILE_CONTENT, new String(body, "UTF-8"));
> +        method.releaseConnection();
> +    }
> +
>     public void testQueryPOST() throws Exception {
>         EntityProvider provider = new QueryEntityProvider("SELECT * FROM doc",
>                 true, null, null);
>
>
>