Regarding the markupException, the example I posted was flawed, must
be: return Markup.of("<wicket:panel>it works</wicket:panel>");
But that is not relevant to my report. The example on github had this fixed.

Any other ideas / somewhat clean workaround? SHould I open a JIRA
issue on this, or two?

On Mon, Sep 15, 2014 at 8:01 PM, Thibault Kruse
<tibokr...@googlemail.com> wrote:
> Sorry, this was wicket 1.6.16 and 1.6.17.
> Here is a quickstart, to reproduce both cases some comments have to be 
> switched:
> https://github.com/tkruse/custommarkup
>
> On Mon, Sep 15, 2014 at 7:50 PM, Sven Meier <s...@meiers.net> wrote:
>> Hi,
>>
>> which Wicket version?
>>
>> The first approach leads to a MarkupException here with Wicket 1.6.x.
>>
>> Regards
>> Sven
>>
>>
>> On 09/15/2014 07:37 PM, Thibault Kruse wrote:
>>>
>>> Hi,
>>>
>>> I am trying to create a wicket panel that renders markup from some
>>> remote source, but if fetching fails, renders some fallback markup. I
>>> want to achieve this with minimal code.
>>>
>>> I tried two approaches one based on overriding getMarkup(), one based
>>> on http://wicket.apache.org/guide/guide/advanced.html#advanced_5, both
>>> fail:
>>>
>>> /**
>>>   * attempts to use custom markup by overriding getMarkup()... but html is
>>> used
>>>   */
>>> public class CustomMarkupFallback1Panel extends GenericPanel<String> {
>>>      @Override
>>>      public IMarkupFragment getMarkup() {
>>>          return Markup.of("it works");
>>>      }
>>> }
>>>
>>> CustomMarkupFallback1Panel.html:
>>> <wicket:panel>
>>>      Fail!
>>> </wicket:panel>
>>>
>>>
>>> This first one overrides getMarkup() as suggested in the javadoc of
>>> IMarkupResourceStreamProvider, but what gets rendered is instead the
>>> static html (even though the debugger walks through getMarkup().
>>>
>>>
>>> The second approach fails using IMarkupResourceStreamProvider works
>>> for the intended markup, but not for the fallback markup
>>> public class CustomMarkupFallback2Panel extends GenericPanel<String>
>>>          IMarkupResourceStreamProvider {
>>>
>>>      @Override
>>>      public IResourceStream getMarkupResourceStream(MarkupContainer
>>> container, Class<?> containerClass) {
>>>          if (getModelObject() == null) {
>>>              // thows Exception, see below. html file exists
>>>              return getMarkup().getMarkupResourceStream();
>>>          } else {
>>>              // works
>>>              return new StringResourceStream(getModelObject());
>>>          }
>>>      }
>>> }
>>>
>>>
>>> At least the first failure seems like a bug to me, not sure whether
>>> the second approach is supposed to work, or how else to load markup
>>> the wicket way.
>>>
>>> Is there maybe a completely different approach to achieve what I try to
>>> do?
>>>
>>> cheers,
>>>    Thibault
>>>
>>>
>>>
>>> java.io.IOException: Stream closed
>>>       at
>>> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162)
>>>       at java.io.BufferedInputStream.read(BufferedInputStream.java:325)
>>>       at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
>>>       at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
>>>       at
>>> org.apache.wicket.util.io.BOMInputStream.getBOM(BOMInputStream.java:217)
>>>       at
>>> org.apache.wicket.util.io.BOMInputStream.readFirstBytes(BOMInputStream.java:261)
>>>       at
>>> org.apache.wicket.util.io.BOMInputStream.read(BOMInputStream.java:312)
>>>       at
>>> org.apache.wicket.util.io.XmlReader.getXmlDeclaration(XmlReader.java:183)
>>>       at org.apache.wicket.util.io.XmlReader.init(XmlReader.java:106)
>>>       at org.apache.wicket.util.io.XmlReader.<init>(XmlReader.java:81)
>>>       at
>>> org.apache.wicket.markup.parser.XmlPullParser.parse(XmlPullParser.java:605)
>>>       at
>>> org.apache.wicket.markup.AbstractMarkupParser.parse(AbstractMarkupParser.java:178)
>>>       at
>>> org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:51)
>>>       at
>>> org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:57)
>>>       at
>>> org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:52)
>>>       at
>>> org.apache.wicket.markup.MarkupFactory.loadMarkup(MarkupFactory.java:412)
>>>       at
>>> org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:448)
>>>       at
>>> org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:544)
>>>       at
>>> org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:305)
>>>       at
>>> org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:236)
>>>       at
>>> org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:194)
>>>       at
>>> org.apache.wicket.MarkupContainer.getAssociatedMarkup(MarkupContainer.java:405)
>>>       at
>>> org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:372)
>>>       at
>>> org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderHeadFromAssociatedMarkupFile(AssociatedMarkupSourcingStrategy.java:244)
>>>       at
>>> org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderHead(AssociatedMarkupSourcingStrategy.java:220)
>>>       at org.apache.wicket.Component.renderHead(Component.java:2652)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy$1.component(ChildFirstHeaderRenderStrategy.java:85)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:96)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:87)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:51)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderChildHeaders(ChildFirstHeaderRenderStrategy.java:78)
>>>       at
>>> org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderHeader(ChildFirstHeaderRenderStrategy.java:57)
>>>       at
>>> org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:170)
>>>       at
>>> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
>>>       at
>>> org.apache.wicket.Component.internalRenderComponent(Component.java:2514)
>>>       at
>>> org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
>>>       at org.apache.wicket.Component.internalRender(Component.java:2344)
>>>       at org.apache.wicket.Component.render(Component.java:2272)
>>>       at
>>> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
>>>       at
>>> org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
>>>       at org.apache.wicket.Page.onRender(Page.java:887)
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to