-
Notifications
You must be signed in to change notification settings - Fork 77
URL containing dbf is not supported by java.net.URL #266
Description
Class org.postgresql.pljava.sqlj.Loader creates URL containing protocol "dbf" which is not supported by java.net.URL and therefore when the URL is created by org.postgresql.pljava.sqlj.Loader opening it by java.net.URL causes exception: java.net.MalformedURLException: unknown protocol: dbf
In my case I'm trying to compile Jasper report and the following exception occurs when run within pljava:
net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 402; schema_reference.4: Failed to read schema document 'dbf://localhost/1057338', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>. at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:303) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:286) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:275) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:220) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:195) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:186) at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:254) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:555) at net.blahovec.framework.report.JasperReportsLib$ReportCompileTaskInternal.compile(JasperReportsLib.java:625) at net.blahovec.pg.lib.PgSysReportLib.reportLayoutJasperCompile(PgSysReportLib.java:44) at net.blahovec.pg.BlahovecNetPg.sysReportLayoutJasperCompile(BlahovecNetPg.java:111) at org.postgresql.pljava.internal@1.6.0-SNAPSHOT/org.postgresql.pljava.internal.EntryPoints.refInvoke(EntryPoints.java:53) Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 402; schema_reference.4: Failed to read schema document 'dbf://localhost/1057338', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>. at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:306) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4257) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4240) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument1(XSDHandler.java:2531) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2238) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:588) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(XMLSchemaLoader.java:844) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:606) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2710) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2069) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:829) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) at org.apache.commons.digester.Digester.parse(Digester.java:1892) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:299) ... 11 more Caused by: java.net.MalformedURLException: unknown protocol: dbf at java.base/java.net.URL.<init>(URL.java:652) at java.base/java.net.URL.<init>(URL.java:541) at java.base/java.net.URL.<init>(URL.java:488) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:649) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:593) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:696) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaDOMParser.parse(SchemaDOMParser.java:530) at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2226) ... 31 more
The same code works without any problem when I run it directly in Java (executed from Eclipse in my case).
I'm using JDK11.0.6 but I've tried OpenJDK 11.0.7 with the same result.