You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by bu...@apache.org on 2005/06/04 01:12:27 UTC

DO NOT REPLY [Bug 35216] - x:forEach causes session scope exception

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35216>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35216





------- Additional Comments From akolkar@us.ibm.com  2005-06-04 01:12 -------
Seems, to me, that XPathUtil#getVariableQNames() misses checking whether the 
session should be accessed. Inlining a patch, given its size, I'm not too 
worried about losing the diff formatting.

Index: XPathUtil.java
===================================================================
RCS file: /usr/local/cvsroot/apache/jakarta-taglibs-standard-1.1.2-
src/standard/src/org/apache/taglibs/standard/tag/common/xml/XPathUtil.java,v
retrieving revision 1.1
diff -c -r1.1 XPathUtil.java
*** XPathUtil.java	3 Jun 2005 22:47:11 -0000	1.1
--- XPathUtil.java	3 Jun 2005 22:58:59 -0000
***************
*** 97,112 ****
              variableVector.addElement( new QName(null, varName ) );
              globalVarSize++;
          }
!         enum_ = pageContext.getAttributeNamesInScope( 
!             PageContext.SESSION_SCOPE );
!         while ( enum_.hasMoreElements() ) {
!             String varName = (String)enum_.nextElement();
!             QName varQName = new QName ( SESSION_NS_URL, SESSION_P,varName); 
!             //Adding both namespace qualified QName and just localName
!             variableVector.addElement( varQName );
!             globalVarSize++;
!             variableVector.addElement( new QName(null, varName ) );
!             globalVarSize++;
          }
          enum_ = pageContext.getAttributeNamesInScope( 
              PageContext.APPLICATION_SCOPE );
--- 97,117 ----
              variableVector.addElement( new QName(null, varName ) );
              globalVarSize++;
          }
!         if (pageContext.getSession() != null) {
!             // we may have a page directive preventing session 
creation/access
!             // do not attempt to retrieve attribute names in session scope
!             // @see [ http://issues.apache.org/bugzilla/show_bug.cgi?
id=35216 ]
!             enum_ = pageContext.getAttributeNamesInScope( 
!                 PageContext.SESSION_SCOPE );
!             while ( enum_.hasMoreElements() ) {
!                 String varName = (String)enum_.nextElement();
!                 QName varQName = new QName ( SESSION_NS_URL, 
SESSION_P,varName); 
!                 //Adding both namespace qualified QName and just localName
!                 variableVector.addElement( varQName );
!                 globalVarSize++;
!                 variableVector.addElement( new QName(null, varName ) );
!                 globalVarSize++;
!             }
          }
          enum_ = pageContext.getAttributeNamesInScope( 
              PageContext.APPLICATION_SCOPE );


-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org