Project Report: fawkez

Packagesummary org.jcoderz.commons.connector.http

org.jcoderz.commons.connector.http.ConnectorResponse

LineHitsNoteSource
1  /*
2   * $Id: ConnectorResponse.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.connector.http;
34  
35  import java.io.Serializable;
36  
37  /**
38   * Value object for the Connector Bean Test.
39   * Includes the time needed for sending the request and
40   * receiving the response and the amount of tries and the
41   * response message.
42   *
43   */
44 (1)public class ConnectorResponse
45        implements Serializable
46  {
47     static final long serialVersionUID = -5201563036377336101L;
48  
49     private final long mRequestTime;
50     private final int mTries;
51     private final byte[] mResponse;
52  
53     /**
54      * Constructor of the value object.
55      *
56      * @param requestTime - time in milli seconds need for sending the
57      *         request and receiving the response
58      * @param tries - the amout of tries for performing the request
59      * @param response - the received response
60      */
61     public ConnectorResponse (long requestTime, int tries, byte[] response)
620    {
630       mRequestTime = requestTime;
640       mTries = tries;
650(2)      mResponse = response;
660    }
67  
68     /**
69      * Get the request time in millis.
70      *
71      * @return long - the request time in millis, -1 if request failed
72      */
73     public long getRequestTime ()
74     {
750       return mRequestTime;
76     }
77  
78     /**
79      * Get the amount of tries.
80      *
81      * @return int - the amount of tries, 1 for no retry
82      */
83     public int getTries ()
84     {
850       return mTries;
86     }
87  
88     /**
89      * Get the response message.
90      *
91      * @return byte[] - the response message
92      */
93     public byte[] getResponse ()
94     {
950       final int length = mResponse.length;
960       final byte[] result = new byte[length];
970       System.arraycopy(mResponse, 0 , result, 0, length);
980       return result;
99     }
100  
101     /** {@inheritDoc} */
102     public String toString ()
103     {
1040(3)      final StringBuffer result = new StringBuffer();
1050(4)      result.append("----Connector Response----");
1060       result.append("\nRequest time in millis: ");
1070       result.append(mRequestTime);
1080       result.append("\nAmount of tries: ");
1090       result.append(mTries);
1100       result.append("\nMessage:\n");
1110       result.append(new String(mResponse));
1120       result.append("\n--------------------------");
1130       return result.toString();
114     }
115  
116  }

Findings in this File

c (1) 44 : 0 Type Javadoc comment is missing an @author tag.
i (2) 65 : 0 new org.jcoderz.commons.connector.http.ConnectorResponse(long, int, byte[]) may expose internal representation by storing an externally mutable object into ConnectorResponse.mResponse (test code) Decreased severity from 'warning' for testcode.
i (3) 104 : 26 StringBuffer constructor is initialized with size 16, but has at least 111 characters appended. (test code)
i (4) 105 : 20 StringBuffer.append is called 2 consecutive times with literal Strings. Use a single append with a single String. (test code)