Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum
In directory 
james.mmbase.org:/tmp/cvs-serv4465/portlets-jforum/src/java/org/jahia/portlet/jforum

Modified Files:
        JForumPortletBridge.java HttpServletRequestWrapper.java 
Log Message:
CMSC-212 fix bug can not post large text.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum
See also: http://www.mmbase.org/jira/browse/CMSC-212


Index: JForumPortletBridge.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum/JForumPortletBridge.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- JForumPortletBridge.java    17 Jan 2008 08:04:51 -0000      1.1
+++ JForumPortletBridge.java    18 Jan 2008 11:00:31 -0000      1.2
@@ -109,14 +109,17 @@
             logger.debug("Found parameter in processAction method: " + name + 
"," + values[0]);
         }
 
+        String postBody = "";
         //deal with file upload
         boolean isFileUpload = isMultipartContent(request);
         if (isFileUpload) {
-            handleMultipartRequest(request, response);
+            postBody = handleMultipartRequest(request, response);
         } else {
             logger.debug("It's no a file Upload.");
         }
 
+
+        request.getPortletSession().setAttribute("postBody", postBody);
         //validate procees action
         validateProcessAction(request);
 
@@ -133,6 +136,7 @@
      */
     public void render(RenderRequest request, RenderResponse response) {
         logger.debug("Begin render method");
+        String postBody = (String) 
request.getPortletSession().getAttribute("postBody");
 
         // deal with SSO
 //        updateRemoteUser(request);
@@ -192,7 +196,7 @@
             //call JForum service method
             if (!isSameServeltAction(request) || isFirstAction(request)) {
                 // || !userProcesseur.isNotAllowedAction()) {
-                callServletServiceMethod(request, response, defaultRequestUri, 
defaultModule, defaultAction);
+                callServletServiceMethod(request, response, defaultRequestUri, 
defaultModule, defaultAction, postBody);
             }
 
             //invalidate process Action call
@@ -289,7 +293,8 @@
      * @param actionRequest Description of Parameter
      * @return The FileUpload value
      */
-    private void handleMultipartRequest(ActionRequest actionRequest, 
ActionResponse actionResponse) {
+    private String handleMultipartRequest(ActionRequest actionRequest, 
ActionResponse actionResponse) {
+        String postBody = "";
         List itemsObject = new ArrayList();
         String encoding = SystemGlobals.getValue(ConfigKeys.ENCODING);
         // check if it's multipart file
@@ -310,7 +315,13 @@
                 FileItem item = (FileItem) iter.next();
                 if (item.isFormField()) {
                     logger.debug("Process upload, form field Name: " + 
item.getFieldName());
+
+                    if ("message".equals(item.getFieldName())) {
+                        postBody = item.getString(encoding);
+                        
actionResponse.setRenderParameter(item.getFieldName(),"");
+                    } else {
                     actionResponse.setRenderParameter(item.getFieldName(), 
item.getString(encoding));
+                    }
                 } else {
                     if (item.getSize() > 0) {
                         logger.debug("Process upload, field Name: " + 
item.getFieldName());
@@ -330,6 +341,8 @@
             //new ForumException(e);
             logger.error("File upload error due to: ", e);
         }
+
+        return postBody;
     }
 
     private final boolean isMultipartContent(ActionRequest req) {
@@ -424,12 +437,12 @@
      * @param defaultModule     Description of Parameter
      * @param defaultAction     Description of Parameter
      */
-    private void callServletServiceMethod(RenderRequest request, 
RenderResponse response, String defaultRequestUri, String defaultModule, String 
defaultAction) {
+    private void callServletServiceMethod(RenderRequest request, 
RenderResponse response, String defaultRequestUri, String defaultModule, String 
defaultAction, String postBody) {
         // deal with file upload
         synchFileUpload(request);
         //logRequestAttributes(request);
         // build HttpServletRequest/response object
-        HttpServletRequestWrapper reqW = new 
HttpServletRequestWrapper(request, defaultRequestUri, defaultModule, 
defaultAction, HttpServletRequestWrapper.HTTP_GET);
+        HttpServletRequestWrapper reqW = new 
HttpServletRequestWrapper(request, defaultRequestUri, defaultModule, 
defaultAction, HttpServletRequestWrapper.HTTP_GET, postBody);
         HttpServletResponseWrapper respW = new 
HttpServletResponseWrapper(response);
 
         // get servlet object


Index: HttpServletRequestWrapper.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum/HttpServletRequestWrapper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- HttpServletRequestWrapper.java      17 Jan 2008 08:04:51 -0000      1.1
+++ HttpServletRequestWrapper.java      18 Jan 2008 11:00:31 -0000      1.2
@@ -29,6 +29,7 @@
     public final static int HTTP_GET = 0;
     public final static int HTTP_POST = 1;
     private static Logger logger = 
Logger.getLogger(HttpServletRequestWrapper.class);
+    String postBody;
 
 
     /**
@@ -39,11 +40,12 @@
      * @param defaultModule     Description of Parameter
      * @param defaultAction     Description of Parameter
      */
-    public HttpServletRequestWrapper(RenderRequest request, String 
defaultRequestUri, String defaultModule, String defaultAction, int httpMethod) {
+    public HttpServletRequestWrapper(RenderRequest request, String 
defaultRequestUri, String defaultModule, String defaultAction, int httpMethod, 
String postBody) {
         super(request);
         this.defaultRequestUri = defaultRequestUri;
         this.defaultModule = defaultModule;
         this.defaultAction = defaultAction;
+        this.postBody = postBody;
         if (httpMethod == HTTP_POST) {
             setPostMethod();
         } else {
@@ -174,6 +176,9 @@
      * @return The Parameter value
      */
     public String getParameter(String name) {
+        if("message".equals(name)){
+            return postBody;
+        }
         String value = super.getParameter(name);
         if (value == null && isFirstAction()) {
             logger.debug("value is null!! for param: " + name);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to