Hi Brock, Yes I confirm, this is for 4.2.12 (sorry, I didn’t have time to include in 4.2.11).
By the way, did we create a Jira related to this ? Regards JB > Le 22 mars 2021 à 03:37, brock samson <brock.sams...@hotmail.com> a écrit : > > JB, > > could you please confirm that this fix is in fact heading for the 4.2.12 > release? thanks! > > From: brock samson <brock.sams...@hotmail.com> > Sent: Thursday, March 4, 2021, 2:28 PM > To: user@karaf.apache.org > Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing > > sounds good > From: Jean-Baptiste Onofre <j...@nanthrax.net> > Sent: Wednesday, March 3, 2021 10:47:26 PM > To: user <user@karaf.apache.org> > Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing > > Hi Brock, > > It will be short for 4.2.11 (eventually 4.2.12): I don’t want to hold 4.2.11 > any longer. > > As you have a workaround (removing xml jar from lib/endorsed), I would prefer > to target 4.2.12 if you don’t mind. > > Regards > JB > >> Le 3 mars 2021 à 21:14, brock samson <brock.sams...@hotmail.com >> <mailto:brock.sams...@hotmail.com>> a écrit : >> >> would it be possible to have this fixed in the upcoming 4.2.11 release? >> >> From: Jean-Baptiste Onofre <j...@nanthrax.net <mailto:j...@nanthrax.net>> >> Sent: Wednesday, March 3, 2021 2:50 AM >> To: user <user@karaf.apache.org <mailto:user@karaf.apache.org>> >> Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing >> >> Hi, >> >> Yes, 90% of the use cases don’t need java.xml in lib/endorsed. >> >> Regards >> JB >> >>> Le 3 mars 2021 à 08:42, brock samson <brock.sams...@hotmail.com >>> <mailto:brock.sams...@hotmail.com>> a écrit : >>> >>> Hi JB >>> >>> I know you are quite busy so no need to apologize. >>> >>> Just to make sure I understood you correctly, the >>> org.apache.karaf.specs.java.xml-4.2.10.jar can be permanently removed from >>> the /endorsed dir without any negative side effects, right? >>> >>> >>> From: Jean-Baptiste Onofre <j...@nanthrax.net <mailto:j...@nanthrax.net>> >>> Sent: Wednesday, March 3, 2021 12:14 AM >>> To: user <user@karaf.apache.org <mailto:user@karaf.apache.org>> >>> Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing >>> >>> Hi Brock, >>> >>> Sorry for the very late answer. >>> >>> The reason why javax.xml is in lib/endorsed folder is because core Karaf >>> loads just the spec and let you install the impl. >>> Anyway, you can remove it from endorsed and install bundles, it works as >>> well. >>> It’s basically what we plan to do by default as part of KARAF-6703. >>> >>> Regards >>> JB >>> >>>> Le 3 mars 2021 à 05:50, brock samson <brock.sams...@hotmail.com >>>> <mailto:brock.sams...@hotmail.com>> a écrit : >>>> >>>> Hi João >>>> >>>> Thank you for looking into this issue. Its nice to know it no longer >>>> appears in karaf 4.3, but is there another way to resolve this in 4.2.10 >>>> without changing the code? More specifically, is there a reason why >>>> org.apache.karaf.specs.java.xml-4.2.10.jar resides in the /endorsed >>>> directory as opposed to being exposed by a bundle? The reason for me >>>> asking is because the bundle approach would allow me to choose which >>>> implementation my bundle would reference, while the current endorsed >>>> approach leaves me no choice. >>>> >>>> Regards, >>>> >>>> Brock >>>> >>>> >>>> From: João Assunção <joao.assun...@exploitsys.com >>>> <mailto:joao.assun...@exploitsys.com>> >>>> Sent: Tuesday, March 2, 2021 5:28 PM >>>> To: user@karaf.apache.org <mailto:user@karaf.apache.org> >>>> <user@karaf.apache.org <mailto:user@karaf.apache.org>> >>>> Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing >>>> >>>> Hi Brock, >>>> >>>> I tried your jar but it failed due to the layout of the jar (the MANIFEST >>>> was not the first entry in the jar or something like that). I created a >>>> bundle with our code and when I tried with karaf 4.3 it passed. >>>> I then tried with 4.2.7 and I experienced the same NPE. Apparently the >>>> behavior when the errorHandler is set to null is different between >>>> implementations of the XML libs supplied in these two versions of karaf. >>>> In your code setting the error handler to builder.setErrorHandler(new >>>> org.xml.sax.helpers.DefaultHandler()); seems to do the trick. >>>> >>>> I noticed your manifest is importing a bunch of packages not required for >>>> the code in question. >>>> >>>> Regards >>>> João Assunção >>>> >>>> Email: joao.assun...@exploitsys.com <mailto:joao.assun...@exploitsys.com> >>>> Mobile: +351 916968984 >>>> Phone: +351 211933149 >>>> Web: www.exploitsys.com <http://www.exploitsys.com/> >>>> >>>> >>>> >>>> >>>> On Tue, Mar 2, 2021 at 3:33 AM brock samson <brock.sams...@hotmail.com >>>> <mailto:brock.sams...@hotmail.com>> wrote: >>>> hi, JB. did you get a chance to run my bundle? >>>> >>>> >>>> From: brock samson <brock.sams...@hotmail.com >>>> <mailto:brock.sams...@hotmail.com>> >>>> Sent: Wednesday, February 24, 2021, 11:18 PM >>>> To: user@karaf.apache.org <mailto:user@karaf.apache.org> >>>> Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing >>>> >>>> hi, JB. >>>> >>>> thank you for looking at this. The attached zip (rename its extension from >>>> .txt to .zip) contains both the bundle (rename its extension from .txt to >>>> .jar) and its feature file. the bundle should be placed in the /bundles >>>> dir, and you know what to do with the feature file =) >>>> here are some points regarding the bundle: >>>> 1) the bundle executes automatically during Karaf startup to make it >>>> easier for you. >>>> 2) The bundle contains both the schema and the xml, so you dont have to >>>> really do anything to the bundle itself in order for it to just run >>>> 3) The bundle contains props.properties where you can specify external >>>> locations to both schema and xml file if you choose to do so for any >>>> reason. The provided files will be ignored in such case. >>>> 4) I have also provided the source .java alongside the binary just in case. >>>> >>>> again, really appreciate you taking the time to look at it. thanks!!! >>>> >>>> Brock Samson >>>> >>>> >>>> From: Jean-Baptiste Onofre <j...@nanthrax.net <mailto:j...@nanthrax.net>> >>>> Sent: Tuesday, February 23, 2021 11:56 AM >>>> To: user@karaf.apache.org <mailto:user@karaf.apache.org> >>>> <user@karaf.apache.org <mailto:user@karaf.apache.org>> >>>> Subject: Re: Karaf 4.2.10 - NullPointerException during xml parsing >>>> >>>> Hi Brock, >>>> >>>> Maybe you have xerces installed as bundle in your distribution ? >>>> >>>> It sounds like a version mismatch. >>>> >>>> Can you share the bundles installed ? >>>> >>>> Thanks, >>>> Regards >>>> JB >>>> >>>>> Le 23 févr. 2021 à 16:55, brock samson <brock.sams...@hotmail.com >>>>> <mailto:brock.sams...@hotmail.com>> a écrit : >>>>> >>>>> Hello, >>>>> >>>>> I am using Karaf 4.2.10 and attempting to perform a rather simple xml >>>>> parsing: >>>>> >>>>> Caused by: java.lang.NullPointerException >>>>> at org.apache.xerces.util.ErrorHandlerProxy.error(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:137) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1900) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:740) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:570) >>>>> ~[?:1.8.0_102] >>>>> at >>>>> org.apache.xerces.jaxp.JAXPValidatorComponent$XNI2SAX.startElement(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.jaxp.JAXPValidatorComponent.startElement(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) >>>>> ~[!/:?] >>>>> at >>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) >>>>> ~[!/:?] >>>>> at org.apache.xerces.parsers.XMLParser.parse(Unknown >>>>> Source) ~[!/:?] >>>>> at org.apache.xerces.parsers.DOMParser.parse(Unknown >>>>> Source) ~[!/:?] >>>>> at >>>>> org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[!/:?] >>>>> at >>>>> javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) >>>>> ~[?:1.8.0_102] >>>>> >>>>> After snooping around, I noticed a >>>>> /container/lib/endorsed/org.apache.karaf.specs.java.xml-4.2.10.jar lib >>>>> containing parser-related libs. My code executed successfully once I ran >>>>> Karaf without this particular file, though I don’t feel right just >>>>> pulling it out of Karaf blindly, as its absence creates a distinct >>>>> possibility of unforeseen issues down the road. >>>>> >>>>> Here are the only imports my bundle references in its manifest: >>>>> Import-Package: >>>>> javax.xml.transform,javax.xml.transform.stream,org.xml.sax,javax.xml.parsers,javax.xml.validation >>>>> >>>>> There are no entries under Bundle-Classpath >>>>> >>>>> Lastly, here is the java code that performs the xml parsing: >>>>> >>>>> DocumentBuilderFactory factory = >>>>> DocumentBuilderFactory.newInstance(); >>>>> SchemaFactory sf = >>>>> SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); >>>>> Schema schema = sf.newSchema(new StreamSource(new >>>>> FileInputStream("<LOCATION-OF-THE-SCHEMA-FILE>"))); >>>>> factory.setNamespaceAware(true); >>>>> factory.setSchema(schema); >>>>> factory.setExpandEntityReferences(false); >>>>> factory.setXIncludeAware(false); >>>>> >>>>> factory.setFeature("http://xml.org/sax/features/external-parameter-entities >>>>> <http://xml.org/sax/features/external-parameter-entities>",false); >>>>> >>>>> factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd >>>>> >>>>> <http://apache.org/xml/features/nonvalidating/load-external-dtd>",false); >>>>> >>>>> factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl >>>>> <http://apache.org/xml/features/disallow-doctype-decl>", true); >>>>> >>>>> factory.setFeature("http://xml.org/sax/features/external-general-entities >>>>> <http://xml.org/sax/features/external-general-entities>",false); >>>>> >>>>> DocumentBuilder builder = factory.newDocumentBuilder(); >>>>> builder.setErrorHandler(null); >>>>> byte[] fileContent = >>>>> Files.readAllBytes(Paths.get("<LOCATION-OF-THE-XML-FILE-TO-BE-PARSED>")); >>>>> InputStream inStream = new ByteArrayInputStream(fileContent); >>>>> Document doc = builder.parse(inStream); >>>>> >>>>> Please advise me as to what I am doing wrong, as well as a possible >>>>> solution. Thank you for your time! >>>>> >>>>> Sincerely, >>>>> >>>>> Brock Samson > >