Hello, As part of a version upgrade of a plugin for Jira (based on Ericsson's OSLC project - https://github.com/Ericsson/jira-oslc-plugin), I am experiencing problems related to Jena.
The functional plugin used packages from < com.hp.hpl.jena.* > in version
2.7.1. We wanted to move to the new repository (org.apache.jena.*).
Here is the piece of code that is problematic:
if (responseCode == 200) {
try {
InputStream is = resp.getEntity().getContent();
Model rdfModel = null;
rdfModel = ModelFactory.createDefaultModel(); //Bug here !
rdfModel.read(is, null);
RootServices rs = new RootServices();
final String ns = "http://jazz.net/xmlns/prod/jazz/jfs/1.0/";
rs.setOAuthAccessTokenURL(OSLCUtils.getProperty(rdfModel, ns,
"oauthAccessTokenUrl"));
rs.setOAuthDomain(OSLCUtils.getProperty(rdfModel, ns,
"oauthDomain"));
rs.setOAuthRequestConsumerKeyURL(OSLCUtils.getProperty(rdfModel,
ns, "oauthRequestConsumerKeyUrl"));
rs.setOAuthRequestTokenURL(OSLCUtils.getProperty(rdfModel, ns,
"oauthRequestTokenUrl"));
rs.setOAuthUserAuthorizationURL(OSLCUtils.getProperty(rdfModel, ns,
"oauthUserAuthorizationUrl"));
return rs;
}
catch (Exception ex) {
log.error(CURRENT_CLASS + "." + currentMethod + " Exception: " +
ex.getMessage());
ex.printStackTrace();
responseCode = 500;
responsePhrase = "Error in parsing response data!\\nSource isn't
root services or malformed!";
}
}
During our development, with the latest version (3.13.0 and in all versions >
3.6) we observed a blocking bug when executing the following function:.
rdfModel = ModelFactory.createDefaultModel(); // Bug here !
The following error message is displayed:
< java.lang.NoClassDefFoundError: Could not initialize class
org.apache.jena.rdf.model.ModelFactory >
[
at
com.ericsson.jira.oslc.oslcclient.Client.getRootServicesDetails(Client.java:140)
[?:?]
at
com.ericsson.jira.oslc.servlet.RootServicesManagementServlet.doPost(RootServicesManagementServlet.java:164)
[?:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
[servlet-api.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
[servlet-api.jar:?]
at
com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:37)
[atlassian-plugins-servlet-5.2.1.jar:?]
[next lines are omitted]
]
As a result we tried with older versions like 3.6 and the bug no longer
appeared. The following line of the program is executed which highlights a bug
fixed since 3.8: "XMLParser" (https://issues.apache.org/jira/browse/JENA-1537).
The error code < java.lang.NoClassDefFoundError > is known and related to the
absence during the execution of the class.
I checked the presence of the <org.apache.jena.rdf.model.ModelFactory > class
in the compiled jar. Moreover, I am surprised to see that Java sends us an
error code when the class only has static methods.
Have you ever encountered this bug or do you have any areas of study?
I suspected a Maven compilation problem but my research did not succeed. As an
attachment, I have included the project's pom.xml.
Thank you in advance for the time you will devote to my problem
Have a good day to you,
Julien Perrault
Ce message et toutes les pieces jointes (ci-apres le "message") sont etablis a
l'attention exclusive de ses destinataires.
Si vous recevez ce message par erreur, merci de le detruire et d'en avertir
immediatement l'expediteur par e-mail.
Toute utilisation de ce message non conforme a sa destination, toute diffusion
ou toute publication, totale ou partielle, est interdite, sauf autorisation
expresse.
Les communications sur Internet n'etant pas securisees, l'expediteur informe
qu'il ne peut accepter aucune responsabilite quant au contenu de ce message.
This mail message and attachments (the "message") are solely intended for the
addressees.
It is confidential in nature .
If you receive this message in error, please delete it and immediately notify
the sender by e-mail.
Any use other than its intended purpose, dissemination or disclosure, either
whole or partial, is prohibited except if formal approval is granted.
As communication on the Internet is not secure, the sender does not accept
responsibility for the content of this message.
pom.xml
Description: pom.xml
