[Resin-interest] Serious jsp:useBean bug?

2008-06-17 Thread Hacking Bear
Hi,

As we are discussing some other issues, we found a potential serious problem
with jsp:useBean. Basically, if useBean only has the type parameter but not
the class/bean parameters, the resin server will fail because it does not
know what to instantiate, contrary to the spec.

!-- should set foo to null but fail instead. --
jsp:useBean id=foo type=java.lang.String scope=request/

For the full discussion of the bug and  the JSP spec, see
http://www.jetbrains.net/jira/browse/IDEA-18405

The strange thing is that Tomcat behaves the same. So I wonder if this is a
bug or a legacy problem for the servers due to confusing descriptions in
earlier JSP spec?

Please enlighten me!

Thanks
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Serious jsp:useBean bug?

2008-06-17 Thread Scott Ferguson


On Jun 17, 2008, at 11:51 AM, Hacking Bear wrote:


Hi,

As we are discussing some other issues, we found a potential serious  
problem with jsp:useBean. Basically, if useBean only has the type  
parameter but not the class/bean parameters, the resin server will  
fail because it does not know what to instantiate, contrary to the  
spec.


!-- should set foo to null but fail instead. --
jsp:useBean id=foo type=java.lang.String scope=request/


How is that contrary to the spec?

JSP.5.1

 5. If the object is not found in the specified scope and neither  
class or beanName
 are given, a java.lang.InstantiationException shall occur. This  
completes the

 processing of thisjsp:useBean action.

-- Scott




For the full discussion of the bug and  the JSP spec, see 
http://www.jetbrains.net/jira/browse/IDEA-18405

The strange thing is that Tomcat behaves the same. So I wonder if  
this is a bug or a legacy problem for the servers due to confusing  
descriptions in earlier JSP spec?


Please enlighten me!

Thanks
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Serious jsp:useBean bug?

2008-06-17 Thread Hacking Bear
Hmm... You are correct that this is the behavior described by the real spec.
Even though the JSP reference card on Sun's website clearly state a
different behavior.

http://java.sun.com/products/jsp/syntax/2.0/syntaxref2027.html#8865

I guest we can only blame the reference card. :-)



On Tue, Jun 17, 2008 at 1:29 PM, Scott Ferguson [EMAIL PROTECTED] wrote:


 On Jun 17, 2008, at 12:42 PM, Hacking Bear wrote:

 See in the discussion link


 You need to address the section I quoted from the spec.  It is extremely
 clear:

   5. If the object is not found in the specified scope and neither class
 nor beanName are
   give, a java.lang.InstantiationException shall occur.  This completes
 the processing of this
  jsp:useBean action.

 There is zero ambiguity in that rule.


 

 However, you may be right that the tag lib spec allows the use of type
 attribute only. In
 http://java.sun.com/products/jsp/tags/11/syntaxref11.fm14.html , it first
 says If the Bean does not exist, jsp:useBean instantiates it from a class
 or serialized template. and then on the attribute description:


 That page is not part of the spec.  Also, it appears to be for JSP 1.1.

 

 Here are some relevant snippets from the JSP 2.1 spec. However, as far as I
 know the sections haven't changed for either 2.0 or 2.1 versions:
 *(section JSP 5.1, jsp:useBean)*

 It is also possible to use this action to give a local name to an object
 defined elsewhere, as in another JSP page or in a servlet. This can be done
 by using the type attribute and not providing class or beanName attributes.

 You're quoting from non-normative explanatory/example text.  The language
 is looser.  The Semantics section is the precisely defined, normative
 section of the spec.

 In the final example, the object should have been present in the session.
 If so, it is given the local name wombat with WombatType. A
 ClassCastException may be raised if the object is of the wrong class, and an
 InstantiationException may be raised if the object is not defined.


 That doesn't contradict rule #5 at all.  It says an InstantiationException
 will be raised if the object isn't defined.  (And since it's from
 explanatory text, the language is looser than the language in the Semantics
 section, i.e. the correct word is shall, not may.)



 jsp:useBean id=wombat type=my.WombatType scope=session/

 
 And for all practical purposes, useBean should allow setting the variable
 to null because many classes are bean-like and not strict JavaBean and it
 is also harder to tell if it is an valid bean or an empty bean.


 Should has nothing to do with specifications.  There is only does and
 does not.  There is no should.  (Well, ignoring optional, but highly
 recommended sections of a spec, which doesn't apply in this case.)

 -- Scott




 On Tue, Jun 17, 2008 at 12:09 PM, Scott Ferguson [EMAIL PROTECTED] wrote:


 On Jun 17, 2008, at 11:51 AM, Hacking Bear wrote:

 Hi,

 As we are discussing some other issues, we found a potential serious
 problem with jsp:useBean. Basically, if useBean only has the type parameter
 but not the class/bean parameters, the resin server will fail because it
 does not know what to instantiate, contrary to the spec.

 !-- should set foo to null but fail instead. --
 jsp:useBean id=foo type=java.lang.String scope=request/


 How is that contrary to the spec?

 JSP.5.1

  5. If the object is not found in the specified scope and neither class
 or beanName
  are given, a java.lang.InstantiationException shall occur. This
 completes the
  processing of thisjsp:useBean action.

 -- Scott



 For the full discussion of the bug and  the JSP spec, see
 http://www.jetbrains.net/jira/browse/IDEA-18405

 The strange thing is that Tomcat behaves the same. So I wonder if this is
 a bug or a legacy problem for the servers due to confusing descriptions in
 earlier JSP spec?

 Please enlighten me!

 Thanks
 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest


 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest