19:19, EET
June 8, 2016
After upgrading from 4 to 5 – I get this message:
java.lang.IllegalStateException: Could not parse the Opc.Ua.NodeSet2.xml nodeset
Unfortunately, the IllegalStateException does not nest any root cause!?
Stack:
Thread [main] (Suspended (exception IllegalStateException))
owns: UaServer (id=89)
NodeManagerRoot$a.() line: 119 [local variables unavailable]
NodeManagerRoot.cko() line: 493
NodeManagerRoot.init() line: 720
NodeManagerTable.init() line: 2619
NodeManagementServiceHandler.init() line: 848
UaServer.initServiceHandlers() line: 3059
UaServer.init() line: 1378
Log before it get’s there.
2024-11-18T18:01:27,611 INFO [main] server.NodeManagerRoot:90 Loading information model jar:file:/C:/dev/M3_REPO/com/prosysopc/ua/prosys-opc-ua-client-server/5.2.6-151/prosys-opc-ua-client-server-5.2.6-151.jar!/com/prosysopc/ua/types/opcua/server/Opc.Ua.NodeSet2.xml
2024-11-18T18:01:27,660 WARN [main] utils.XMLFactoryCache:95 Cannot initialize XML factories to ignore DTD processing (CVE-2018-12585), please update java to newer version or configure manually if custom XML parser framework is in use
What could be the cause of this? Mayb we have different classpaths?
If it’s another exception, it may be better to nest it into the IllegalStateException
Using Java17.
Somewhat related: https://forum.prosysopc.com/forum/opc-ua-java-sdk/opc-ua-server-startup-slow-due-to-domparser-doing-jar-scan/#p5400
PS where is documentation on the markup that can be used in this forum? I could not find any documentation. Thanks!
10:24, EET
April 3, 2012
Hi,
Sorry for the trouble, there might be something we didn’t account for. While it probably doesn’t fix it, can you please try with 5.2.8, that includes the ’cause’ in that “Could not parse the Opc.Ua.NodeSet2.xml nodeset” IllegalStateException, which probably helps in figuring out what has happened.
19:28, EET
June 8, 2016
New Stack with 5.2.8
Dont know how to do markup that does not break sharp brackets, but
“String.hashCode()” because “” is null
is supposed to say (I am writing it with entity encoding):
“String.hashCode()” because “<local8>” is null
Caused by: java.lang.ExceptionInInitializerError
at com.prosysopc.ua.server.NodeManagerRoot.cko(SourceFile:493)
at com.prosysopc.ua.server.NodeManagerRoot.init(SourceFile:720)
at com.prosysopc.ua.server.NodeManagerTable.init(SourceFile:2619)
at com.prosysopc.ua.server.NodeManagementServiceHandler.init(SourceFile:848)
at com.prosysopc.ua.server.UaServer.initServiceHandlers(SourceFile:3059)
at com.prosysopc.ua.server.UaServer.init(SourceFile:1378)
… 32 more
Caused by: java.lang.IllegalStateException: Could not parse the Opc.Ua.NodeSet2.xml nodeset
at com.prosysopc.ua.server.NodeManagerRoot$a.(SourceFile:119)
… 39 more
Caused by: java.lang.NullPointerException: Cannot invoke “String.hashCode()” because “” is null
at com.prosysopc.ua.d.parse(SourceFile:511)
at com.prosysopc.ua.UaNodeSet.parseXml(SourceFile:1102)
at com.prosysopc.ua.UaNodeSet.parseXml(SourceFile:1046)
at com.prosysopc.ua.server.NodeManagerRoot$a.(SourceFile:96)
… 39 more
10:31, EET
April 3, 2012
Does that WARN about “Cannot initialize XML factories to ignore DTD processing ” still happen? My guess would be it does..
Can you do the following by using the same Java version (and environment), in just a main method (or where you would first use the SDK normally):
javax.xml.parsers.DocumentBuilderFactory.newInstance()
and then for the instance
javax.xml.parsers.DocumentBuilderFactory.setNamespaceAware(true) <– this probably throws in your case?
javax.xml.parsers.DocumentBuilderFactory.newDocumentBuilder()
Basically the WARN should be related to the steps https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#Java failing. We do that to prevent some XML-related attacks, but the WARN should only happen with Java 6 (so basically shouldn’t with SDK 5.x since 8 is minimum, but the init code is same as in 4.x). However, for com.prosysopc.ua.UaNodeSet functionality we had to add DocumentBuilderFactory.setNamespaceAware(true) as part of the com.prosysopc.ua.stack.utils.XMLFactoryCache initializations. So if that somehow fails by itself the WARN would appear (and is confusing, we need to change that).
IF I remove that setNamespaceAware(true) and start SampleConsoleServer, I get a NPE regrading a switch-case on a String, which matches your stacktrace.
Since we didn’t get this error in any of our testing and we did test on all major platforms, do you run in some sort of a special setup? (continue in uajava-support@prosysopc.com if not possible to answer here)
I could theorize e.g. GraalVM or maybe OSGi etc. something that has possibly removed the NamespaceAware implementation from the runtime itself or hides it somehow so that it cannot be found. Or maybe if some libs are used that override the xml parsers inside the typical runtime and they wouldn’t have a NamespaceAware implementation. IF yes, maybe you have some configuration option to make it visible/find-able?
P.S.
Sorry, the formatting options are not that great. HTML pre and code tags can be used, but I heavily recommend writing the answer in a notepad first, since both have issues and can remove e.g. xml elements (and indentation doesn’t work).
Most Users Ever Online: 1919
Currently Online:
10 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 724
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1526
Posts: 6457
Newest Members:
forrestdilke5, ernestoportus31, martin123, rickie5305, shaylamaggard4, rickyjuarez140, jonathonmcintyre, fannielima, kristiewinkle8, rustModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1028, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1