Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7.2
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
Workaround Exists:Yes
-
Workaround Description:Hardcode label attribute.
Description
Note from customer:
More issues with outputResource...
This works...
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
value="view"
type="button"
attachment="false"/>
Also This works..
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
label="view"
value="view"
attachment="false"/>
This doesn't
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
label="#{msg.searchResults_link_view}"
value="view"
attachment="false"/>
Note the value binding for label instead of it hard coded that appears to cause problem. hard coding works.....
I get following error
java.lang.NullPointerException
at com.sun.facelets.el.ELAdaptor.getELContext(ELAdaptor.java:47)
at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:54)
at com.icesoft.faces.component.outputresource.OutputResource.getLabel(OutputResource.java:189)
at com.icesoft.faces.component.outputresource.OutputResource$1.withOptions(OutputResource.java:89)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher$ResourceServer.respond(ResourceDispatcher.java:100)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer$CompressingRequest$1.respond(CompressingServer.java:65)
at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167)
at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer$CompressingRequest.respondWith(CompressingServer.java:61)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher$ResourceServer.service(ResourceDispatcher.java:94)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer.service(CompressingServer.java:44)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher.service(ResourceDispatcher.java:41)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
More issues with outputResource...
This works...
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
value="view"
type="button"
attachment="false"/>
Also This works..
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
label="view"
value="view"
attachment="false"/>
This doesn't
<ice:outputResource
resource="#{hc1099rep2008Pdf.resourceMap[hc1099]}" mimeType="application/pdf"
fileName="#{msg.searchResults_link_view}"
label="#{msg.searchResults_link_view}"
value="view"
attachment="false"/>
Note the value binding for label instead of it hard coded that appears to cause problem. hard coding works.....
I get following error
java.lang.NullPointerException
at com.sun.facelets.el.ELAdaptor.getELContext(ELAdaptor.java:47)
at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:54)
at com.icesoft.faces.component.outputresource.OutputResource.getLabel(OutputResource.java:189)
at com.icesoft.faces.component.outputresource.OutputResource$1.withOptions(OutputResource.java:89)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher$ResourceServer.respond(ResourceDispatcher.java:100)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer$CompressingRequest$1.respond(CompressingServer.java:65)
at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167)
at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer$CompressingRequest.respondWith(CompressingServer.java:61)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher$ResourceServer.service(ResourceDispatcher.java:94)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
at com.icesoft.faces.webapp.http.common.standard.CompressingServer.service(CompressingServer.java:44)
at com.icesoft.faces.webapp.http.core.ResourceDispatcher.service(ResourceDispatcher.java:41)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
Let's see if we can have the component use the Resource's options if specified. They can be augmented by the component options but the Resource's options should take precedence.
If this isn't readily feasible then we at least need to document the policy in the TLD for the component (in any case the TLD needs to clearly state the policy towards the options behavior).