Author: wesw
Date: Mon Apr 27 02:09:35 2009
New Revision: 768855

URL: http://svn.apache.org/viewvc?rev=768855&view=rev
Log:
WW-3102 minor changes per findbugs analysis

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Bean.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ElseIf.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FormButton.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ApplicationMap.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/SessionMap.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/DateFormatter.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/FastByteArrayOutputStream.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
 Mon Apr 27 02:09:35 2009
@@ -128,7 +128,6 @@
     protected ValueStackFactory valueStackFactory;
     protected ActionProxyFactory actionProxyFactory;
     protected ActionProxy proxy;
-    protected ActionMapper actionMapper;
     protected String name;
     protected String namespace;
     protected boolean executeResult;

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Bean.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Bean.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Bean.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Bean.java 
Mon Apr 27 02:09:35 2009
@@ -97,7 +97,7 @@
 @StrutsTag(name="bean", tldTagClass="org.apache.struts2.views.jsp.BeanTag",
         description="Instantiate a JavaBean and place it in the context")
 public class Bean extends ContextBean {
-    protected static Logger LOG = LoggerFactory.getLogger(Bean.class);
+    protected static final Logger LOG = LoggerFactory.getLogger(Bean.class);
 
     protected Object bean;
     protected String name;

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Component.java
 Mon Apr 27 02:09:35 2009
@@ -403,7 +403,7 @@
                                         boolean includeContext, boolean 
encodeResult, boolean forceAddSchemeHostAndPort,
                                         boolean escapeAmp) {
         String finalAction = findString(action);
-        String finalMethod = method != null ? findString(method) : method;
+        String finalMethod = method != null ? findString(method) : null;
         String finalNamespace = determineNamespace(namespace, getStack(), req);
         ActionMapping mapping = new ActionMapping(finalAction, finalNamespace, 
finalMethod, parameters);
         String uri = actionMapper.getUriFromActionMapping(mapping);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java 
(original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Date.java 
Mon Apr 27 02:09:35 2009
@@ -274,7 +274,6 @@
 
     public boolean end(Writer writer, String body) {
         String msg = null;
-        ValueStack stack = getStack();
         java.util.Date date = null;
         // find the name on the valueStack
         try {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ElseIf.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ElseIf.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ElseIf.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ElseIf.java
 Mon Apr 27 02:09:35 2009
@@ -88,7 +88,7 @@
         if (answer.booleanValue()) {
             stack.getContext().put(If.ANSWER, answer);
         }
-        return answer != null && answer.booleanValue();
+        return answer.booleanValue();
     }
 
     public boolean end(Writer writer, String body) {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FormButton.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FormButton.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FormButton.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/FormButton.java
 Mon Apr 27 02:09:35 2009
@@ -44,7 +44,6 @@
     protected String method;
     protected String align;
     protected String type;
-    protected ActionMapper actionMapper;
 
     public FormButton(ValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
         super(stack, request, response);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Param.java
 Mon Apr 27 02:09:35 2009
@@ -108,7 +108,7 @@
                 String name = findString(this.name);
 
                 if (name == null) {
-                    throw new StrutsException("No name found for following 
expression: " + name);
+                    throw new StrutsException("No name found for following 
expression: " + this.name);
                 }
 
                 Object value = findValue(this.value);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
 Mon Apr 27 02:09:35 2009
@@ -308,8 +308,6 @@
         // where the parameters specified in value attribute takes priority.
 
         if (value != null && value.trim().length() > 0 && value.indexOf("?") > 
0) {
-            mergedParams = new LinkedHashMap();
-
             String queryString = value.substring(value.indexOf("?")+1);
 
             mergedParams = UrlHelper.parseQueryString(queryString);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ApplicationMap.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ApplicationMap.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ApplicationMap.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ApplicationMap.java
 Mon Apr 27 02:09:35 2009
@@ -86,6 +86,9 @@
                 final Object value = context.getAttribute(key);
                 entries.add(new Map.Entry() {
                     public boolean equals(Object obj) {
+                        if (!(obj instanceof Map.Entry)) {
+                          return false;
+                        }
                         Map.Entry entry = (Map.Entry) obj;
 
                         return ((key == null) ? (entry.getKey() == null) : 
key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : 
value.equals(entry.getValue()));
@@ -119,6 +122,9 @@
                 final Object value = context.getInitParameter(key);
                 entries.add(new Map.Entry() {
                     public boolean equals(Object obj) {
+                        if (!(obj instanceof Map.Entry)) {
+                          return false;
+                        }
                         Map.Entry entry = (Map.Entry) obj;
 
                         return ((key == null) ? (entry.getKey() == null) : 
key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : 
value.equals(entry.getValue()));

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
 Mon Apr 27 02:09:35 2009
@@ -170,7 +170,7 @@
                     String pathEnding = buildPath(name, pathPrefix);
                     if (resourceUrl.getFile().endsWith(pathEnding))
                         is = resourceUrl.openStream();
-                } catch (Exception ex) {
+                } catch (IOException ex) {
                     // just ignore it
                     continue;
                 }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 Mon Apr 27 02:09:35 2009
@@ -602,7 +602,20 @@
             File multipartSaveDir = new File(saveDir);
 
             if (!multipartSaveDir.exists()) {
-                multipartSaveDir.mkdir();
+                if (multipartSaveDir.mkdir() == false) {
+                    String logMessage;
+                   try {
+                        logMessage = "Could not find create multipart save 
directory '"+multipartSaveDir.getCanonicalPath()+"'.";
+                   } catch (IOException e) {
+                        logMessage = "Could not find create multipart save 
directory '"+multipartSaveDir.toString()+"'.";
+                   }
+                   if(devMode) {
+                        LOG.error(logMessage);
+                   }
+                   else {
+                        LOG.warn(logMessage);
+                   }
+                }
             }
         }
 

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java
 Mon Apr 27 02:09:35 2009
@@ -80,6 +80,9 @@
                 final Object value = request.getAttribute(key);
                 entries.add(new Entry() {
                     public boolean equals(Object obj) {
+                        if (!(obj instanceof Entry)) {
+                          return false;
+                        }
                         Entry entry = (Entry) obj;
 
                         return ((key == null) ? (entry.getKey() == null) : 
key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : 
value.equals(entry.getValue()));

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/SessionMap.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/SessionMap.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/SessionMap.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/SessionMap.java
 Mon Apr 27 02:09:35 2009
@@ -117,6 +117,9 @@
                     final Object value = session.getAttribute(key);
                     entries.add(new Map.Entry<K,V>() {
                         public boolean equals(Object obj) {
+                            if (!(obj instanceof Map.Entry)) {
+                              return false;
+                            }
                             Map.Entry<K, V> entry = (Map.Entry<K, V>) obj;
 
                             return ((key == null) ? (entry.getKey() == null) : 
key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : 
value.equals(entry.getValue()));

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
 Mon Apr 27 02:09:35 2009
@@ -121,16 +121,16 @@
 
         String actionName = mapping.getName();
 
-        int lastSlashPos = actionName.lastIndexOf('/');
         String id = null;
-        if (lastSlashPos > -1 && actionName != null) {
-            id = actionName.substring(lastSlashPos+1);
-        }
-
 
         // Only try something if the action name is specified
         if (actionName != null && actionName.length() > 0) {
 
+            int lastSlashPos = actionName.lastIndexOf('/');
+            if (lastSlashPos > -1) {
+                id = actionName.substring(lastSlashPos+1);
+            }
+
 
             // If a method hasn't been explicitly named, try to guess using 
ReST-style patterns
             if (mapping.getMethod() == null) {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
 Mon Apr 27 02:09:35 2009
@@ -120,15 +120,18 @@
      * @see 
org.apache.struts2.dispatcher.mapper.ActionMapper#getUriFromActionMapping(org.apache.struts2.dispatcher.mapper.ActionMapping)
      */
     public String getUriFromActionMapping(ActionMapping mapping) {
-        String base = mapping.getNamespace() + mapping.getName();
+        StringBuilder retVal = new StringBuilder();
+        retVal.append(mapping.getNamespace());
+        retVal.append(mapping.getName());
         for (Map.Entry<String, Object> entry : mapping.getParams().entrySet()) 
{
             String name = entry.getKey();
             if (name.equals(mapping.getName() + "Id")) {
-                base = base + "/" + entry.getValue();
+                retVal.append("/");
+                retVal.append(entry.getValue());
                 break;
             }
         }
 
-        return base;
+        return retVal.toString();
     }
 }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
 Mon Apr 27 02:09:35 2009
@@ -66,14 +66,15 @@
     public String intercept(ActionInvocation ai) throws Exception {
         Map parameters = ai.getInvocationContext().getParameters();
         Map<String, String[]> newParams = new HashMap<String, String[]>();
-        Set<String> keys = parameters.keySet();
-        for (Iterator<String> iterator = keys.iterator(); iterator.hasNext();) 
{
-            String key = iterator.next();
+        Set<Map.Entry> entries = parameters.entrySet();
+        for (Iterator<Map.Entry> iterator = entries.iterator(); 
iterator.hasNext();) {
+            Map.Entry entry = iterator.next();
+            String key = (String)entry.getKey();
 
             if (key.startsWith("__checkbox_")) {
                 String name = key.substring("__checkbox_".length());
 
-                Object values = parameters.get(key);
+                Object values = entry.getValue();
                 iterator.remove();
                 if (values != null && values instanceof String[] && 
((String[])values).length > 1) {
                     LOG.debug("Bypassing automatic checkbox detection due to 
multiple checkboxes of the same name: #1", name);

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
 Mon Apr 27 02:09:35 2009
@@ -317,7 +317,9 @@
                 }
 
                 if ((currentFile != null) && currentFile.isFile()) {
-                    currentFile.delete();
+                    if (currentFile.delete() == false) {
+                        LOG.warn("Resource Leaking:  Could not remove uploaded 
file '"+currentFile.getCanonicalPath()+"'.");
+                    }
                 }
             }
         }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
 Mon Apr 27 02:09:35 2009
@@ -160,9 +160,9 @@
     private String requestParameterSwitch = "operationMode";
     private String operationMode = NONE;
 
-    public static String fieldErrorsSessionKey = 
"__MessageStoreInterceptor_FieldErrors_SessionKey";
-    public static String actionErrorsSessionKey = 
"__MessageStoreInterceptor_ActionErrors_SessionKey";
-    public static String actionMessagesSessionKey = 
"__MessageStoreInterceptor_ActionMessages_SessionKey";
+    public static final String fieldErrorsSessionKey = 
"__MessageStoreInterceptor_FieldErrors_SessionKey";
+    public static final String actionErrorsSessionKey = 
"__MessageStoreInterceptor_ActionErrors_SessionKey";
+    public static final String actionMessagesSessionKey = 
"__MessageStoreInterceptor_ActionMessages_SessionKey";
 
 
 

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
 Mon Apr 27 02:09:35 2009
@@ -210,6 +210,9 @@
       public String toString() {
         return "NULL";
       }
+      public int hashCode() {
+        return 1; // All instances of this class are equivalent
+      }
       public boolean equals(Object obj) {
         return obj == null || (obj instanceof NULLClass);
       }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/DateFormatter.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/DateFormatter.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/DateFormatter.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/DateFormatter.java
 Mon Apr 27 02:09:35 2009
@@ -57,7 +57,7 @@
     }
 
     public void setDate(Date date) {
-        this.date = date;
+        this.date = (date == null) ? null : (Date)date.clone();
     }
 
     public void setDate(int date) {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/FastByteArrayOutputStream.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/FastByteArrayOutputStream.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/FastByteArrayOutputStream.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/FastByteArrayOutputStream.java
 Mon Apr 27 02:09:35 2009
@@ -134,10 +134,20 @@
      * This method is need only for debug. And needed for tests generated 
files.
      */
     private void writeToFile() {
+        FileOutputStream fileOutputStream = null;
         try {
-            writeTo(new FileOutputStream("/tmp/" + getClass().getName() + 
System.currentTimeMillis() + ".log"));
+            fileOutputStream = new FileOutputStream("/tmp/" + 
getClass().getName() + System.currentTimeMillis() + ".log");
+            writeTo(fileOutputStream);
         } catch (IOException e) {
             // Ignore
+        } finally {
+            if (fileOutputStream != null) {
+                try {
+                    fileOutputStream.close();
+                } catch (IOException e) {
+                    // Ignore
+                }
+            }
         }
     }
 
@@ -258,4 +268,4 @@
     public void close() {
         closed = true;
     }
-}
\ No newline at end of file
+}

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
 Mon Apr 27 02:09:35 2009
@@ -77,7 +77,7 @@
     }
 
     public boolean isOdd() {
-        return ((state.index + 1) % 2) == 1;
+        return ((state.index + 1) % 2) != 0;
     }
 
     public int modulus(int operand) {

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java?rev=768855&r1=768854&r2=768855&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
 Mon Apr 27 02:09:35 2009
@@ -39,7 +39,6 @@
     protected String href;
     protected String includeParams;
     protected String scheme;
-    protected String value;
     protected String action;
     protected String namespace;
     protected String method;


Reply via email to