You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Tobias Frech <to...@frech.info> on 2003/06/16 22:48:44 UTC

ApplicationRuntimeException: Unable to convert 'null' to a property type.

Hi!
I am using Tapestry (now version 3.0beta1a) together with JBoss. Worked 
pretty well until now. But right now I am stuck. I created a new 
component that needs 5 parameters (all required). If I declare/use that 
componenten in a .page file the misery starts (if the declaration is 
comment out everything works again). The following exceptions are thrown:

18:31:10,309 INFO  [AbstractEngine] Uncaught exception
org.apache.tapestry.ApplicationRuntimeException: Unable to convert 
'null' to a property type.
         at 
org.apache.tapestry.enhance.ComponentClassFactory.convertPropertyType(ComponentClassFactory.java:291)
         at 
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterProperty(ComponentClassFactory.java:651)
         at 
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterEnhancements(ComponentClassFactory.java:592)
         at 
org.apache.tapestry.enhance.ComponentClassFactory.scanForEnhancements(ComponentClassFactory.java:568)
         at 
org.apache.tapestry.enhance.ComponentClassFactory.needsEnhancement(ComponentClassFactory.java:236)
         at 
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.constructComponentClass(DefaultComponentClassEnhancer.java:1
58)
         at 
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.getEnhancedClass(DefaultComponentClassEnhancer.java:118)
         at 
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:681)
         at 
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:562)
         at 
org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:835)
         at 
org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:194)
         at 
org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:236)
         at 
org.apache.tapestry.engine.HomeService.service(HomeService.java:100)
         at 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:879)
         at 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
         at 
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
...
The error above is printed a second time and the third error looks like 
this:

Exceptions:
18:31:11,656 ERROR [STDERR] 
org.apache.tapestry.ApplicationRuntimeException: Unable to convert 
'null' to a property type.
18:31:11,656 ERROR [STDERR]    location: 
classpath:/app/components/selector.jwc, line 9, column 63
18:31:11,657 ERROR [STDERR] 
org.apache.tapestry.ApplicationRuntimeException: Could not load class 
null from org.mortbay.http.Cont
extLoader(file:/var/tmp/Jetty_0_0_0_0_8080__fe/webapp/WEB-INF/classes/) 
/ java.net.FactoryURLClassLoader@14ed400: null
18:31:11,657 ERROR [STDERR] java.lang.NullPointerException
18:31:11,657 ERROR [STDERR] java.lang.Class.forName0(Native Method)
18:31:11,657 ERROR [STDERR] java.lang.Class.forName(Class.java:217)
18:31:11,658 ERROR [STDERR] 
org.apache.tapestry.util.DefaultResourceResolver.findClass(DefaultResourceResolver.java:144)
18:31:11,658 ERROR [STDERR] 
org.apache.tapestry.enhance.ComponentClassFactory.convertPropertyType(ComponentClassFactory.java:287)
18:31:11,658 ERROR [STDERR] 
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterProperty(ComponentClassFactory.java
:651)
18:31:11,658 ERROR [STDERR] 
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterEnhancements(ComponentClassFactory.
java:592)
18:31:11,658 ERROR [STDERR] 
org.apache.tapestry.enhance.ComponentClassFactory.scanForEnhancements(ComponentClassFactory.java:568)
18:31:11,659 ERROR [STDERR] 
org.apache.tapestry.enhance.ComponentClassFactory.needsEnhancement(ComponentClassFactory.java:236)
18:31:11,659 ERROR [STDERR] 
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.constructComponentClass(DefaultComponentCla
ssEnhancer.java:158)
18:31:11,659 ERROR [STDERR] 
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.getEnhancedClass(DefaultComponentClassEnhan
cer.java:118)
18:31:11,659 ERROR [STDERR] 
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:681)
18:31:11,659 ERROR [STDERR] 
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:562)
18:31:11,660 ERROR [STDERR] 
org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:835)
18:31:11,660 ERROR [STDERR] 
org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:194)
18:31:11,660 ERROR [STDERR] 
org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:236)
18:31:11,660 ERROR [STDERR] 
org.apache.tapestry.engine.HomeService.service(HomeService.java:100)
18:31:11,660 ERROR [STDERR] 
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:879)
18:31:11,661 ERROR [STDERR] 
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
18:31:11,661 ERROR [STDERR] 
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
18:31:11,661 ERROR [STDERR] 
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
...

There are more errors of this type and even NPEs after these errors, but 
I think the errors above are the main cause for the rest of them.

The selector.jwc file mentioned in one error above start like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-specification PUBLIC
         "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
         "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">

<component-specification class="info.frech.components.selector">
   <parameter name="relevant" direction="in" required="yes"/>
   <parameter name="selected" direction="in" required="yes"/>
   <parameter name="deselected" direction="in" required="yes"/>
   <parameter name="included" direction="in" required="yes"/>
   <parameter name="excluded" direction="in" required="yes"/>
...

Line numer 9 is the line with "deselected" in it.

Why do I see these errors ?
What does the error message mean ?
How can I resolve it ?

Thanks a lot for any help and ideas.

Cheers,
Tobias



Re: ApplicationRuntimeException: Unable to convert 'null' to a property type.

Posted by Tobias Frech <to...@frech.info>.
Hi!
Mindbridge wrote:
> I believe the culprit is in the parameter definitions:
> 
>>   <parameter name="relevant" direction="in" required="yes"/>
>>   <parameter name="selected" direction="in" required="yes"/>
>>   <parameter name="deselected" direction="in" required="yes"/>
>>   <parameter name="included" direction="in" required="yes"/>
>>   <parameter name="excluded" direction="in" required="yes"/>
> 
> 
> You would need to define the type of the parameter in those definitions, for
> example:
> <parameter name="relevant" type="boolean" direction="in" required="yes"/>
> 
> This should fix it, I believe.

Adding type="java.util.Collection" to the tags solved the problem. 
Thanks a lot ! ;-)

> This should not occur in the release version. If you would like to add a
> bug, it will be much appreciated.

Is the 'type="..."' part optional ?
About what should I complain in the bug report ? Should 
java.util.Collection be "auto-detected" ?

Ciao,
Tobias


Re: ApplicationRuntimeException: Unable to convert 'null' to a property type.

Posted by Mindbridge <mi...@yahoo.com>.
Hi,

I believe the culprit is in the parameter definitions:
>    <parameter name="relevant" direction="in" required="yes"/>
>    <parameter name="selected" direction="in" required="yes"/>
>    <parameter name="deselected" direction="in" required="yes"/>
>    <parameter name="included" direction="in" required="yes"/>
>    <parameter name="excluded" direction="in" required="yes"/>

You would need to define the type of the parameter in those definitions, for
example:
<parameter name="relevant" type="boolean" direction="in" required="yes"/>

This should fix it, I believe.

This should not occur in the release version. If you would like to add a
bug, it will be much appreciated.

Best regards,
-mb

----- Original Message ----- 
From: "Tobias Frech" <to...@frech.info>
To: "Tapestry users" <ta...@jakarta.apache.org>
Sent: Monday, June 16, 2003 11:48 PM
Subject: ApplicationRuntimeException: Unable to convert 'null' to a property
type.


> Hi!
> I am using Tapestry (now version 3.0beta1a) together with JBoss. Worked
> pretty well until now. But right now I am stuck. I created a new
> component that needs 5 parameters (all required). If I declare/use that
> componenten in a .page file the misery starts (if the declaration is
> comment out everything works again). The following exceptions are thrown:
>
> 18:31:10,309 INFO  [AbstractEngine] Uncaught exception
> org.apache.tapestry.ApplicationRuntimeException: Unable to convert
> 'null' to a property type.
>          at
>
org.apache.tapestry.enhance.ComponentClassFactory.convertPropertyType(Compon
entClassFactory.java:291)
>          at
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterProperty(C
omponentClassFactory.java:651)
>          at
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterEnhancemen
ts(ComponentClassFactory.java:592)
>          at
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForEnhancements(Compon
entClassFactory.java:568)
>          at
>
org.apache.tapestry.enhance.ComponentClassFactory.needsEnhancement(Component
ClassFactory.java:236)
>          at
>
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.constructComponent
Class(DefaultComponentClassEnhancer.java:1
> 58)
>          at
>
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.getEnhancedClass(D
efaultComponentClassEnhancer.java:118)
>          at
>
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java
:681)
>          at
>
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:5
62)
>          at
> org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:835)
>          at
> org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:194)
>          at
> org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:236)
>          at
> org.apache.tapestry.engine.HomeService.service(HomeService.java:100)
>          at
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:879)
>          at
>
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238
)
>          at
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> ...
> The error above is printed a second time and the third error looks like
> this:
>
> Exceptions:
> 18:31:11,656 ERROR [STDERR]
> org.apache.tapestry.ApplicationRuntimeException: Unable to convert
> 'null' to a property type.
> 18:31:11,656 ERROR [STDERR]    location:
> classpath:/app/components/selector.jwc, line 9, column 63
> 18:31:11,657 ERROR [STDERR]
> org.apache.tapestry.ApplicationRuntimeException: Could not load class
> null from org.mortbay.http.Cont
> extLoader(file:/var/tmp/Jetty_0_0_0_0_8080__fe/webapp/WEB-INF/classes/)
> / java.net.FactoryURLClassLoader@14ed400: null
> 18:31:11,657 ERROR [STDERR] java.lang.NullPointerException
> 18:31:11,657 ERROR [STDERR] java.lang.Class.forName0(Native Method)
> 18:31:11,657 ERROR [STDERR] java.lang.Class.forName(Class.java:217)
> 18:31:11,658 ERROR [STDERR]
>
org.apache.tapestry.util.DefaultResourceResolver.findClass(DefaultResourceRe
solver.java:144)
> 18:31:11,658 ERROR [STDERR]
>
org.apache.tapestry.enhance.ComponentClassFactory.convertPropertyType(Compon
entClassFactory.java:287)
> 18:31:11,658 ERROR [STDERR]
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterProperty(C
omponentClassFactory.java
> :651)
> 18:31:11,658 ERROR [STDERR]
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForParameterEnhancemen
ts(ComponentClassFactory.
> java:592)
> 18:31:11,658 ERROR [STDERR]
>
org.apache.tapestry.enhance.ComponentClassFactory.scanForEnhancements(Compon
entClassFactory.java:568)
> 18:31:11,659 ERROR [STDERR]
>
org.apache.tapestry.enhance.ComponentClassFactory.needsEnhancement(Component
ClassFactory.java:236)
> 18:31:11,659 ERROR [STDERR]
>
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.constructComponent
Class(DefaultComponentCla
> ssEnhancer.java:158)
> 18:31:11,659 ERROR [STDERR]
>
org.apache.tapestry.enhance.DefaultComponentClassEnhancer.getEnhancedClass(D
efaultComponentClassEnhan
> cer.java:118)
> 18:31:11,659 ERROR [STDERR]
>
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java
:681)
> 18:31:11,659 ERROR [STDERR]
>
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:5
62)
> 18:31:11,660 ERROR [STDERR]
> org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:835)
> 18:31:11,660 ERROR [STDERR]
> org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:194)
> 18:31:11,660 ERROR [STDERR]
> org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:236)
> 18:31:11,660 ERROR [STDERR]
> org.apache.tapestry.engine.HomeService.service(HomeService.java:100)
> 18:31:11,660 ERROR [STDERR]
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:879)
> 18:31:11,661 ERROR [STDERR]
>
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238
)
> 18:31:11,661 ERROR [STDERR]
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
> 18:31:11,661 ERROR [STDERR]
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> ...
>
> There are more errors of this type and even NPEs after these errors, but
> I think the errors above are the main cause for the rest of them.
>
> The selector.jwc file mentioned in one error above start like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE component-specification PUBLIC
>          "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
>          "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
>
> <component-specification class="info.frech.components.selector">
>    <parameter name="relevant" direction="in" required="yes"/>
>    <parameter name="selected" direction="in" required="yes"/>
>    <parameter name="deselected" direction="in" required="yes"/>
>    <parameter name="included" direction="in" required="yes"/>
>    <parameter name="excluded" direction="in" required="yes"/>
> ...
>
> Line numer 9 is the line with "deselected" in it.
>
> Why do I see these errors ?
> What does the error message mean ?
> How can I resolve it ?
>
> Thanks a lot for any help and ideas.
>
> Cheers,
> Tobias
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org