Thursday, April 6, 2017

Debugging MultiIndexServiceConfiguration Stack Trace in PowerAqua

Debugging stack trace:

 HTTP Status 500 - java.lang.NullPointerException

type Exception report
message java.lang.NullPointerException
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
root cause
java.lang.NullPointerException
 poweraqua.indexingService.creator.MultiIndexServiceConfiguration.readConfigurationFile(MultiIndexServiceConfiguration.java:81)
 poweraqua.indexingService.creator.MultiIndexServiceConfiguration.<init>(MultiIndexServiceConfiguration.java:46)
 poweraqua.indexingService.manager.MultiIndexManager.<init>(MultiIndexManager.java:100)
 poweraqua.powermap.mappingModel.MappingSession.<init>(MappingSession.java:75)
 org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:104)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs.





From the .jar indexingService.jar in /PowerAqua/WEB-INF/lib/
 


/PowerAqua/WEB-INF/lib/indexingSer
vice/creator/MultiIndexServiceConfiguration.class

Feeding
MultiIndexServiceConfiguration.class into Java Decompiler (http://jd.benow.ca/) gives an interesting function:

public class MultiIndexServiceConfiguration
{
  private static final String MULTI_INDEX_CONFIGURATION_FILE = "multi_index_properties.xml";


....
 private void readConfigurationFile(String path)
  {

...
list = configuration.getElementsByTagName("POWERMAP");
    setPowermap(Boolean.valueOf(list.item(0).getFirstChild().getNodeValue()).booleanValue());
   
    list = configuration.getElementsByTagName("VIRTUOSO");
    setVirtuoso(Boolean.valueOf(list.item(0).getFirstChild().getNodeValue()).booleanValue());
   
    list = configuration.getElementsByTagName("REMOTESPARQLVIRTUOSO");
    setRemoteSPARQLVirtuoso(Boolean.valueOf(list.item(0).getFirstChild().getNodeValue()).booleanValue());
   
    list = configuration.getElementsByTagName("ONTOLOGY_INDEX_DB");
    setDb(list.item(0).getFirstChild().getNodeValue());
   
    list = configuration.getElementsByTagName("ONTOLOGY_INDEX_DB_LOGIN");
    setLogin(list.item(0).getFirstChild() != null ? list.item(0).getFirstChild().getNodeValue() : new String());
   
    list = configuration.getElementsByTagName("ONTOLOGY_INDEX_DB_PASSWORD");
    setPassword(list.item(0).getFirstChild() != null ? list.item(0).getFirstChild().getNodeValue() : new String());
   
    list = configuration.getElementsByTagName("INDEX_GLOBAL_PATH");
    setIndex_global_path(list.item(0).getFirstChild() != null ? list.item(0).getFirstChild().getNodeValue() : new String());
   
    NodeList indexes = configuration.getElementsByTagName("INDEX_INFO_FOLDER");
    System.out.println("Number of indexes is " + indexes.getLength());
    this.indexList = new ArrayList();
    for (int i = 0; i < indexes.getLength(); i++)
    {
      String indexFolder = indexes.item(i).getFirstChild() != null ? indexes.item(i).getFirstChild().getNodeValue() : null;
      MultiOntologyIndexBean bean = new MultiOntologyIndexBean(indexFolder);
      getIndexList().add(bean);
    }
  }

No comments:

Post a Comment