[
https://issues.apache.org/jira/browse/TOMEE-2024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15924242#comment-15924242
]
Svetlin Zarev edited comment on TOMEE-2024 at 3/14/17 2:02 PM:
---------------------------------------------------------------
Well, I just created a second service-provider entry in the service-jar.xml for
the data-source provider (pointing to the very same class). But I had to spend
some time debugging why my data-source factory creates non jta data-sources
when it should create jta ones :) So what about improving the logged message ?
was (Author: svetlinzarev):
Well, I just created a second service-provider entry in the service-jar.xml for
the data-source provider (pointing to the very same class). But I had to spen
some time why my data-source factory creates non jta data-sources when it
should create jta ones :) So what about improving the logged message ?
> Misleading log entries
> ----------------------
>
> Key: TOMEE-2024
> URL: https://issues.apache.org/jira/browse/TOMEE-2024
> Project: TomEE
> Issue Type: Bug
> Affects Versions: 7.0.3, 7.0.4
> Reporter: Svetlin Zarev
> Priority: Minor
>
> Assembler:1420-1454:
> {code}
> final String jtaWithJavaAndSlash =
> replaceJavaAndSlash(unit.getJtaDataSource());
> for (final String potentialName : asList(prefix +
> jtaWithJavaAndSlash, originalJtaDataSource, jtaWithJavaAndSlash)) {
> if(potentialName == null) {
> // If unit.getJtaDataSource() is null, one of the
> potentialName is also null.
> continue;
> }
> final ResourceInfo jtaInfo =
> configFactory.getResourceInfo(potentialName);
> if (jtaInfo != null) {
> if
> (!"false".equalsIgnoreCase(jtaInfo.properties.getProperty("JtaManaged")) //
> don't test true since it can be missing
> && (jtaInfo.types.contains("DataSource") ||
> jtaInfo.types.contains(DataSource.class.getName()))) {
> jtaDataSourceId = jtaInfo.id;
> break;
> } else {
> -----> logger.warning("Found matching datasource: " +
> jtaInfo.id + " but this one is not a JTA datasource");
> }
> }
> }
> final String nonJtaWithJavaAndSlash =
> replaceJavaAndSlash(unit.getNonJtaDataSource());
> for (final String potentialName : asList(prefix +
> nonJtaWithJavaAndSlash, originalNonJtaDataSource, nonJtaWithJavaAndSlash)) {
> if(potentialName == null) {
> // If unit.getNonJtaDataSource() is null, one of the
> potentialName is also null.
> continue;
> }
> final ResourceInfo info =
> configFactory.getResourceInfo(potentialName);
> if (info != null) {
> if
> (!"true".equalsIgnoreCase(info.properties.getProperty("JtaManaged"))
> && (info.types.contains("DataSource") ||
> info.types.contains(DataSource.class.getName()))) {
> nonJtaDataSourceId = info.id;
> break;
> } else {
> -----> logger.warning("Found matching datasource: " +
> info.id + " but this one is a JTA datasource");
> }
> }
> }
> {code}
> The two warnings are very misleading, because it prints that my JTA
> data-source is NON JTA one, and my non-jta is jta data-source when my service
> provider does not have "javax.sql.DataSource" in the "types" property.
> Also IMO when I explicitly set the service provider it should not matter what
> "types" it has in the service-jar.xml.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)