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