You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bu...@apache.org on 2004/03/25 20:09:26 UTC

DO NOT REPLY [Bug 27956] New: - ApplicationRuntimeException is thrown when the jdk dependend validation of abstract methods fails

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=27956>.
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=27956

ApplicationRuntimeException is thrown when the jdk dependend validation of abstract methods fails

           Summary: ApplicationRuntimeException is thrown when the jdk
                    dependend validation of abstract methods fails
           Product: Tapestry
           Version: 3.0
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Framework
        AssignedTo: tapestry-dev@jakarta.apache.org
        ReportedBy: Michael.Frericks@sparkassen-informatik.de


Description

ApplicationRuntimeException is thrown when the jdk dependend validation of 
abstract methods fails


Reason:

Using the IBM-1.3.1 which is bundled to the IBM websphere
executing in the method

org.apache.tapestry.enhance.DefaultComponentClassEnhancer#checkForAbstractMethod
s

the line

            boolean isAbstract = Modifier.isAbstract(m.getModifiers());

sets  isAbstract = true

when the method m has a body but the method is contained in
a abstract class.          

Because of this the method 

org.apache.tapestry.enhance.DefaultComponentClassEnhancer#validateEnhancedClass

throws an ApplicationRuntimeException.


Solution:

Change in

org.apache.tapestry.enhance.DefaultComponentClassEnhancer#validateEnhancedClass

the line 

throw new ApplicationRuntimeException(Tapestry.format
("DefaultComponentClassEnhancer.no-impl-for-abstract-method",new Object[] { m, 
current, className, subject.getName()}), specification.getLocation(), null);

to 

LOG.warn(Tapestry.format("DefaultComponentClassEnhancer.no-impl-for-abstract-
method", new Object[] { m, current, className, subject.getName()}) + 
specification.getLocation());

So you got hints in your logfile but in the occasions where the diagnosis fails 
the
application keeps on running.

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