[
https://issues.jboss.org/browse/JBJCA-1380?page=com.atlassian.jira.plugin...
]
Chris Poulsen updated JBJCA-1380:
---------------------------------
Description:
While trying to adjust settings on the H2 data source we use for a corner of our system
during testing, I ran into problems.
H2 accepts parameters appended to the url on the form
";<name>=<value>" for example:
"jdbc:h2:mem:unit-test;MODE=Oracle"
I was unable to deploy the datasource using:
<xa-datasource-property
name="url">jdbc:h2:mem:unit-test;MODE=Oracle</xa-datasource-property>
Ironjacamar keeps complaining about:
Caused by: java.lang.NoSuchMethodException: Method setMODE not found some setter not being
found.
My initial thought was that <url-delimiter> was the cause, but no dice.
Following the trace into the sources, I guess the offending line is:
{code:java}
xaDataSourceProperties = xaDataSourceProperties.replace(';', '\n');
{code}
In XAManagedConnectionFactory around line: 174 (see following snippet)
{code:java}
public void setXADataSourceProperties(String xaDataSourceProperties) throws
ResourceException
{
this.xaDataSourceProperties = xaDataSourceProperties;
xaProps.clear();
if (xaDataSourceProperties != null)
{
// Map any \ to \\
xaDataSourceProperties = xaDataSourceProperties.replaceAll("\\\\",
"\\\\\\\\");
// Map any ; to \n
xaDataSourceProperties = xaDataSourceProperties.replace(';',
'\n');
InputStream is = new ByteArrayInputStream(xaDataSourceProperties.getBytes());
try
{
Properties p = new Properties();
p.load(is);
for (Map.Entry<Object, Object> entry : p.entrySet())
{
xaProps.put((String)entry.getKey(), (String)entry.getValue());
}
}
{code}
was:
While trying to adjust settings on the H2 data source we use for a corner of our system
during testing, I ran into problems.
H2 accepts parameters appended to the url on the form
";<name>=<value>" for example:
"jdbc:h2:mem:unit-test;DB_CLOSE_DELAY=-1"
I was unable to deploy the datasource using:
<xa-datasource-property
name="url">jdbc:h2:mem:unit-test;DB_CLOSE_DELAY=-1</xa-datasource-property>
Ironjacamar keeps complaining about:
Caused by: java.lang.NoSuchMethodException: Method setMODE not found some setter not being
found.
My initial thought was that <url-delimiter> was the cause, but no dice.
Following the trace into the sources, I guess the offending line is:
{code:java}
xaDataSourceProperties = xaDataSourceProperties.replace(';', '\n');
{code}
In XAManagedConnectionFactory around line: 174 (see following snippet)
{code:java}
public void setXADataSourceProperties(String xaDataSourceProperties) throws
ResourceException
{
this.xaDataSourceProperties = xaDataSourceProperties;
xaProps.clear();
if (xaDataSourceProperties != null)
{
// Map any \ to \\
xaDataSourceProperties = xaDataSourceProperties.replaceAll("\\\\",
"\\\\\\\\");
// Map any ; to \n
xaDataSourceProperties = xaDataSourceProperties.replace(';',
'\n');
InputStream is = new ByteArrayInputStream(xaDataSourceProperties.getBytes());
try
{
Properties p = new Properties();
p.load(is);
for (Map.Entry<Object, Object> entry : p.entrySet())
{
xaProps.put((String)entry.getKey(), (String)entry.getValue());
}
}
{code}
XAManagedConnectionFactory screws up Datasource urls containing ;
-----------------------------------------------------------------
Key: JBJCA-1380
URL:
https://issues.jboss.org/browse/JBJCA-1380
Project: IronJacamar
Issue Type: Bug
Components: JDBC
Affects Versions: 1.4.9
Environment: Unit testing using an embedded ironjacamar
Reporter: Chris Poulsen
Attachments: XAManagedConnectionFactory-h2-error.txt
While trying to adjust settings on the H2 data source we use for a corner of our system
during testing, I ran into problems.
H2 accepts parameters appended to the url on the form
";<name>=<value>" for example:
"jdbc:h2:mem:unit-test;MODE=Oracle"
I was unable to deploy the datasource using:
<xa-datasource-property
name="url">jdbc:h2:mem:unit-test;MODE=Oracle</xa-datasource-property>
Ironjacamar keeps complaining about:
Caused by: java.lang.NoSuchMethodException: Method setMODE not found some setter not
being found.
My initial thought was that <url-delimiter> was the cause, but no dice.
Following the trace into the sources, I guess the offending line is:
{code:java}
xaDataSourceProperties = xaDataSourceProperties.replace(';', '\n');
{code}
In XAManagedConnectionFactory around line: 174 (see following snippet)
{code:java}
public void setXADataSourceProperties(String xaDataSourceProperties) throws
ResourceException
{
this.xaDataSourceProperties = xaDataSourceProperties;
xaProps.clear();
if (xaDataSourceProperties != null)
{
// Map any \ to \\
xaDataSourceProperties = xaDataSourceProperties.replaceAll("\\\\",
"\\\\\\\\");
// Map any ; to \n
xaDataSourceProperties = xaDataSourceProperties.replace(';',
'\n');
InputStream is = new ByteArrayInputStream(xaDataSourceProperties.getBytes());
try
{
Properties p = new Properties();
p.load(is);
for (Map.Entry<Object, Object> entry : p.entrySet())
{
xaProps.put((String)entry.getKey(), (String)entry.getValue());
}
}
{code}
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)