Clover Coverage Report - Pebble 2.5-SNAPSHOT
Coverage timestamp: Sat Jun 12 2010 09:39:29 EST
../../../../../img/srcFileCovDistChart0.png 48% of files have more coverage
22   102   15   3,14
14   57   0,68   7
7     2,14  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  GZIPResponseWrapper       Line # 41 22 0% 15 43 0% 0.0
 
No Tests
 
1    /*
2    * Copyright (c) 2003-2006, Simon Brown
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * - Redistributions of source code must retain the above copyright
9    * notice, this list of conditions and the following disclaimer.
10    *
11    * - Redistributions in binary form must reproduce the above copyright
12    * notice, this list of conditions and the following disclaimer in
13    * the documentation and/or other materials provided with the
14    * distribution.
15    *
16    * - Neither the name of Pebble nor the names of its contributors may
17    * be used to endorse or promote products derived from this software
18    * without specific prior written permission.
19    *
20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23    * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30    * POSSIBILITY OF SUCH DAMAGE.
31    */
32    package net.sourceforge.pebble.web.filter;
33   
34    import javax.servlet.ServletOutputStream;
35    import javax.servlet.http.HttpServletResponse;
36    import javax.servlet.http.HttpServletResponseWrapper;
37    import java.io.IOException;
38    import java.io.OutputStreamWriter;
39    import java.io.PrintWriter;
40   
 
41    public class GZIPResponseWrapper extends HttpServletResponseWrapper {
42   
43    protected HttpServletResponse wrappedResponse = null;
44    protected ServletOutputStream stream = null;
45    protected PrintWriter writer = null;
46   
 
47  0 toggle public GZIPResponseWrapper(HttpServletResponse response) {
48  0 super(response);
49  0 wrappedResponse = response;
50    }
51   
 
52  0 toggle public ServletOutputStream createOutputStream() throws IOException {
53  0 return (new GZIPResponseStream(wrappedResponse));
54    }
55   
 
56  0 toggle public void finishResponse() {
57  0 try {
58  0 if (writer != null) {
59  0 writer.close();
60    } else {
61  0 if (stream != null) {
62  0 stream.close();
63    }
64    }
65    } catch (IOException e) {
66    }
67    }
68   
 
69  0 toggle public void flushBuffer() throws IOException {
70  0 if (stream != null) {
71  0 stream.flush();
72    }
73    }
74   
 
75  0 toggle public ServletOutputStream getOutputStream() throws IOException {
76  0 if (writer != null) {
77  0 throw new IllegalStateException("getWriter() has already been called!");
78    }
79   
80  0 if (stream == null)
81  0 stream = createOutputStream();
82  0 return (stream);
83    }
84   
 
85  0 toggle public PrintWriter getWriter() throws IOException {
86  0 if (writer != null) {
87  0 return (writer);
88    }
89   
90  0 if (stream != null) {
91  0 throw new IllegalStateException("getOutputStream() has already been called!");
92    }
93   
94  0 stream = createOutputStream();
95  0 writer = new PrintWriter(new OutputStreamWriter(stream, "UTF-8"));
96  0 return (writer);
97    }
98   
 
99  0 toggle public void setContentLength(int length) {
100    }
101   
102    }