Bug 967984 - Support For Child Elements of <loader> Missing When Defining Custom Cache Loader
Summary: Support For Child Elements of <loader> Missing When Defining Custom Cache Loader
Alias: None
Product: JBoss Data Grid 6
Classification: JBoss
Component: Infinispan, Server
Version: 6.1.0
Hardware: All
OS: All
Target Milestone: ---
: 6.2.0
Assignee: Tristan Tarrant
QA Contact: Martin Gencur
Depends On:
Blocks: 973763
TreeView+ depends on / blocked
Reported: 2013-05-28 17:47 UTC by Jonathan Mason
Modified: 2018-12-02 17:17 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Red Hat JBoss Data Grid server is not able to parse XML configuration for a custom cache loader if the configuration contains child elements, such as custom properties, inside &lt;loader&gt; element. As a result, JBoss Data Grid server fails to start. </para> <para> The support for child elements of &lt;loader&gt; element has been implemented. As a result, a custom cache loader inside JBoss Data Grid server allows for nested configuration tags and can successfully start with such a configuration.
Clone Of:
: 973763 (view as bug list)
Last Closed:
Type: Bug

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker ISPN-3157 0 Critical Resolved Realign Infinispan subsystem to match AS7.2/EAP6.1 2015-10-26 10:53:06 UTC

Description Jonathan Mason 2013-05-28 17:47:20 UTC
Description of problem:

When defining a custom cache loader via configuration file, JBoss Data Grid (JDG) fails to boot due to parsing errors (child elements of <loader>). Looking at org.jboss.as.clustering.infinispan.subsystem.InfinispanSubsystemXMLReader_5_2#parseCustomLoader, it seems that there is not support for child elements for <loader>.

Version-Release number of selected component (if applicable):
JBoss Data Grid 6.1 (based on Infinispan 5.2)

How reproducible:

Steps to Reproduce:

1). Define a cache with a customer loader like such:

<local-cache name="AppProps" start="EAGER">
     <transaction mode="NONE"/>
     <loader class="com.ferguson.xp.SimpleCacheLoader">
	<property name="p1">v1</property>

Actual results:

JDG fails to boot with XML parsing errors:

14:33:18,864 ERROR [org.jboss.as.server] JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[116,27]
Message: JBAS014789: Unexpected element '{urn:infinispan:server:core:5.2}property' encountered
	at org.jboss.as.controller.parsing.ParseUtils.unexpectedElement(ParseUtils.java:85) [jboss-as-controller-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]

Expected results:

JDG can sucessfully parse elements and boot up cleanly

Additional info:

Comment 2 Jakub Markos 2013-07-24 09:15:27 UTC
Works in 6.2.0.DR1 (fixed by https://github.com/infinispan/infinispan-server/commit/e9691aa1d4eb6ac67aadea23d7912002974eb24f + new test in our testsuite).

Comment 4 dereed 2014-01-09 17:25:37 UTC
Fixed the doc text by changing "store" to "loader".

(The configuration did already work for a cache store, it was missing for a cache loader).

Note You need to log in before you can comment on or make changes to this bug.