Conflict between gwt-dev.jar and the Java 11 Module system still exists in GWT 2.9.0.

1,167 views
Skip to first unread message

Jim Douglas

unread,
May 18, 2020, 1:18:34 PM5/18/20
to GWT Users
I struggled with a module-related issue a year ago when I tried to configure an Eclipse 2019-03 + Java 11 build environment with a project that includes GWT 2.8.2. These are my testing notes from the time:

Updating a working Java 11 build environment from Eclipse 2018-12 to 2019-03 introduced several thousand build errors in the format "The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml". Apparently these errors are all caused by a project importing a package via the traditional classpath that also exists in the JDK's modulepath. The error message is maddeningly vague; it gives no clue where it sees a conflict (i.e. some particular imported jar file). After resolving all obvious conflicts, I made a copy of my gwt-2.8.2 directory and hacked the gwt-dev.jar file to remove the packages that I see referenced in these error messages (netscape.javascript.*, javax.xml.*, org.xml.*, and org.w3c.*):


scrappy:gwt-2.8.2-mod jimdouglas$ zip -d gwt-dev.jar "org/w3c/*" "org/xml/*" "javax/xml/*" "netscape/javascript/*"


My initial testing of GWT 2.9.0 looks pretty good; it appears to just drop in and work with no issues whatsoever in an Eclipse Java 8 development environment. But I do still see these module conflicts in my Eclipse 2020-03 + AdoptOpenJDK 11.0.7 development environment. In limited testing, that same hack to gwt-dev.jar seems to resolve all of those conflicts:

scrappy:gwt-2.9.0-mod jimdouglas$ zip -d gwt-dev.jar "org/w3c/*" "org/xml/*" "javax/xml/*" "netscape/javascript/*"

deleting: javax/xml/

deleting: javax/xml/datatype/

deleting: javax/xml/namespace/

deleting: javax/xml/parsers/

deleting: javax/xml/stream/

deleting: javax/xml/stream/events/

deleting: javax/xml/stream/util/

deleting: javax/xml/transform/

deleting: javax/xml/transform/dom/

deleting: javax/xml/transform/sax/

deleting: javax/xml/transform/stax/

deleting: javax/xml/transform/stream/

deleting: javax/xml/validation/

deleting: javax/xml/ws/

deleting: javax/xml/xpath/

deleting: netscape/javascript/

deleting: org/w3c/

deleting: org/w3c/css/

deleting: org/w3c/css/sac/

deleting: org/w3c/css/sac/helpers/

deleting: org/w3c/dom/

deleting: org/w3c/dom/bootstrap/

deleting: org/w3c/dom/css/

deleting: org/w3c/dom/events/

deleting: org/w3c/dom/html/

deleting: org/w3c/dom/ls/

deleting: org/w3c/dom/ranges/

deleting: org/w3c/dom/stylesheets/

deleting: org/w3c/dom/traversal/

deleting: org/w3c/dom/views/

deleting: org/w3c/dom/xpath/

deleting: org/xml/

deleting: org/xml/sax/

deleting: org/xml/sax/ext/

deleting: org/xml/sax/helpers/

deleting: javax/xml/XMLConstants.class

deleting: javax/xml/datatype/DatatypeConfigurationException.class

deleting: javax/xml/datatype/DatatypeConstants$1.class

deleting: javax/xml/datatype/DatatypeConstants$Field.class

deleting: javax/xml/datatype/DatatypeConstants.class

deleting: javax/xml/datatype/DatatypeFactory.class

deleting: javax/xml/datatype/Duration.class

deleting: javax/xml/datatype/FactoryFinder$ConfigurationError.class

deleting: javax/xml/datatype/FactoryFinder.class

deleting: javax/xml/datatype/SecuritySupport$1.class

deleting: javax/xml/datatype/SecuritySupport$2.class

deleting: javax/xml/datatype/SecuritySupport$3.class

deleting: javax/xml/datatype/SecuritySupport$4.class

deleting: javax/xml/datatype/SecuritySupport$5.class

deleting: javax/xml/datatype/SecuritySupport.class

deleting: javax/xml/datatype/XMLGregorianCalendar.class

deleting: javax/xml/namespace/NamespaceContext.class

deleting: javax/xml/namespace/QName$1.class

deleting: javax/xml/namespace/QName.class

deleting: javax/xml/parsers/DocumentBuilder.class

deleting: javax/xml/parsers/DocumentBuilderFactory.class

deleting: javax/xml/parsers/FactoryConfigurationError.class

deleting: javax/xml/parsers/FactoryFinder$ConfigurationError.class

deleting: javax/xml/parsers/FactoryFinder.class

deleting: javax/xml/parsers/FilePathToURI.class

deleting: javax/xml/parsers/ParserConfigurationException.class

deleting: javax/xml/parsers/SAXParser.class

deleting: javax/xml/parsers/SAXParserFactory.class

deleting: javax/xml/parsers/SecuritySupport$1.class

deleting: javax/xml/parsers/SecuritySupport$2.class

deleting: javax/xml/parsers/SecuritySupport$3.class

deleting: javax/xml/parsers/SecuritySupport$4.class

deleting: javax/xml/parsers/SecuritySupport$5.class

deleting: javax/xml/parsers/SecuritySupport.class

deleting: javax/xml/stream/EventFilter.class

deleting: javax/xml/stream/FactoryConfigurationError.class

deleting: javax/xml/stream/FactoryFinder$ConfigurationError.class

deleting: javax/xml/stream/FactoryFinder.class

deleting: javax/xml/stream/Location.class

deleting: javax/xml/stream/SecuritySupport$1.class

deleting: javax/xml/stream/SecuritySupport$2.class

deleting: javax/xml/stream/SecuritySupport$3.class

deleting: javax/xml/stream/SecuritySupport$4.class

deleting: javax/xml/stream/SecuritySupport$5.class

deleting: javax/xml/stream/SecuritySupport.class

deleting: javax/xml/stream/StreamFilter.class

deleting: javax/xml/stream/XMLEventFactory.class

deleting: javax/xml/stream/XMLEventReader.class

deleting: javax/xml/stream/XMLEventWriter.class

deleting: javax/xml/stream/XMLInputFactory.class

deleting: javax/xml/stream/XMLOutputFactory.class

deleting: javax/xml/stream/XMLReporter.class

deleting: javax/xml/stream/XMLResolver.class

deleting: javax/xml/stream/XMLStreamConstants.class

deleting: javax/xml/stream/XMLStreamException.class

deleting: javax/xml/stream/XMLStreamReader.class

deleting: javax/xml/stream/XMLStreamWriter.class

deleting: javax/xml/stream/events/Attribute.class

deleting: javax/xml/stream/events/Characters.class

deleting: javax/xml/stream/events/Comment.class

deleting: javax/xml/stream/events/DTD.class

deleting: javax/xml/stream/events/EndDocument.class

deleting: javax/xml/stream/events/EndElement.class

deleting: javax/xml/stream/events/EntityDeclaration.class

deleting: javax/xml/stream/events/EntityReference.class

deleting: javax/xml/stream/events/Namespace.class

deleting: javax/xml/stream/events/NotationDeclaration.class

deleting: javax/xml/stream/events/ProcessingInstruction.class

deleting: javax/xml/stream/events/StartDocument.class

deleting: javax/xml/stream/events/StartElement.class

deleting: javax/xml/stream/events/XMLEvent.class

deleting: javax/xml/stream/util/EventReaderDelegate.class

deleting: javax/xml/stream/util/StreamReaderDelegate.class

deleting: javax/xml/stream/util/XMLEventAllocator.class

deleting: javax/xml/stream/util/XMLEventConsumer.class

deleting: javax/xml/transform/ErrorListener.class

deleting: javax/xml/transform/FactoryFinder$ConfigurationError.class

deleting: javax/xml/transform/FactoryFinder.class

deleting: javax/xml/transform/OutputKeys.class

deleting: javax/xml/transform/Result.class

deleting: javax/xml/transform/SecuritySupport$1.class

deleting: javax/xml/transform/SecuritySupport$2.class

deleting: javax/xml/transform/SecuritySupport$3.class

deleting: javax/xml/transform/SecuritySupport$4.class

deleting: javax/xml/transform/SecuritySupport$5.class

deleting: javax/xml/transform/SecuritySupport.class

deleting: javax/xml/transform/Source.class

deleting: javax/xml/transform/SourceLocator.class

deleting: javax/xml/transform/Templates.class

deleting: javax/xml/transform/Transformer.class

deleting: javax/xml/transform/TransformerConfigurationException.class

deleting: javax/xml/transform/TransformerException.class

deleting: javax/xml/transform/TransformerFactory.class

deleting: javax/xml/transform/TransformerFactoryConfigurationError.class

deleting: javax/xml/transform/URIResolver.class

deleting: javax/xml/transform/dom/DOMLocator.class

deleting: javax/xml/transform/dom/DOMResult.class

deleting: javax/xml/transform/dom/DOMSource.class

deleting: javax/xml/transform/sax/SAXResult.class

deleting: javax/xml/transform/sax/SAXSource.class

deleting: javax/xml/transform/sax/SAXTransformerFactory.class

deleting: javax/xml/transform/sax/TemplatesHandler.class

deleting: javax/xml/transform/sax/TransformerHandler.class

deleting: javax/xml/transform/stax/StAXResult.class

deleting: javax/xml/transform/stax/StAXSource.class

deleting: javax/xml/transform/stream/FilePathToURI.class

deleting: javax/xml/transform/stream/StreamResult.class

deleting: javax/xml/transform/stream/StreamSource.class

deleting: javax/xml/validation/Schema.class

deleting: javax/xml/validation/SchemaFactory.class

deleting: javax/xml/validation/SchemaFactoryFinder$1.class

deleting: javax/xml/validation/SchemaFactoryFinder$2.class

deleting: javax/xml/validation/SchemaFactoryFinder$SingleIterator.class

deleting: javax/xml/validation/SchemaFactoryFinder.class

deleting: javax/xml/validation/SchemaFactoryLoader.class

deleting: javax/xml/validation/SecuritySupport$1.class

deleting: javax/xml/validation/SecuritySupport$2.class

deleting: javax/xml/validation/SecuritySupport$3.class

deleting: javax/xml/validation/SecuritySupport$4.class

deleting: javax/xml/validation/SecuritySupport$5.class

deleting: javax/xml/validation/SecuritySupport$6.class

deleting: javax/xml/validation/SecuritySupport$7.class

deleting: javax/xml/validation/SecuritySupport$8.class

deleting: javax/xml/validation/SecuritySupport.class

deleting: javax/xml/validation/TypeInfoProvider.class

deleting: javax/xml/validation/Validator.class

deleting: javax/xml/validation/ValidatorHandler.class

deleting: javax/xml/ws/WebServiceRef.class

deleting: javax/xml/ws/WebServiceRefs.class

deleting: javax/xml/xpath/SecuritySupport$1.class

deleting: javax/xml/xpath/SecuritySupport$2.class

deleting: javax/xml/xpath/SecuritySupport$3.class

deleting: javax/xml/xpath/SecuritySupport$4.class

deleting: javax/xml/xpath/SecuritySupport$5.class

deleting: javax/xml/xpath/SecuritySupport$6.class

deleting: javax/xml/xpath/SecuritySupport$7.class

deleting: javax/xml/xpath/SecuritySupport$8.class

deleting: javax/xml/xpath/SecuritySupport.class

deleting: javax/xml/xpath/XPath.class

deleting: javax/xml/xpath/XPathConstants.class

deleting: javax/xml/xpath/XPathException.class

deleting: javax/xml/xpath/XPathExpression.class

deleting: javax/xml/xpath/XPathExpressionException.class

deleting: javax/xml/xpath/XPathFactory.class

deleting: javax/xml/xpath/XPathFactoryConfigurationException.class

deleting: javax/xml/xpath/XPathFactoryFinder$1.class

deleting: javax/xml/xpath/XPathFactoryFinder$2.class

deleting: javax/xml/xpath/XPathFactoryFinder$SingleIterator.class

deleting: javax/xml/xpath/XPathFactoryFinder.class

deleting: javax/xml/xpath/XPathFunction.class

deleting: javax/xml/xpath/XPathFunctionException.class

deleting: javax/xml/xpath/XPathFunctionResolver.class

deleting: javax/xml/xpath/XPathVariableResolver.class

deleting: netscape/javascript/JSException.class

deleting: netscape/javascript/JSObject.class

deleting: org/w3c/css/sac/AttributeCondition.class

deleting: org/w3c/css/sac/COPYING.html

deleting: org/w3c/css/sac/CSSException.class

deleting: org/w3c/css/sac/CSSParseException.class

deleting: org/w3c/css/sac/CharacterDataSelector.class

deleting: org/w3c/css/sac/CombinatorCondition.class

deleting: org/w3c/css/sac/Condition.class

deleting: org/w3c/css/sac/ConditionFactory.class

deleting: org/w3c/css/sac/ConditionalSelector.class

deleting: org/w3c/css/sac/ContentCondition.class

deleting: org/w3c/css/sac/DescendantSelector.class

deleting: org/w3c/css/sac/DocumentHandler.class

deleting: org/w3c/css/sac/ElementSelector.class

deleting: org/w3c/css/sac/ErrorHandler.class

deleting: org/w3c/css/sac/InputSource.class

deleting: org/w3c/css/sac/LangCondition.class

deleting: org/w3c/css/sac/LexicalUnit.class

deleting: org/w3c/css/sac/Locator.class

deleting: org/w3c/css/sac/NegativeCondition.class

deleting: org/w3c/css/sac/NegativeSelector.class

deleting: org/w3c/css/sac/Parser.class

deleting: org/w3c/css/sac/PositionalCondition.class

deleting: org/w3c/css/sac/ProcessingInstructionSelector.class

deleting: org/w3c/css/sac/SACMediaList.class

deleting: org/w3c/css/sac/Selector.class

deleting: org/w3c/css/sac/SelectorFactory.class

deleting: org/w3c/css/sac/SelectorList.class

deleting: org/w3c/css/sac/SiblingSelector.class

deleting: org/w3c/css/sac/SimpleSelector.class

deleting: org/w3c/css/sac/helpers/ParserFactory.class

deleting: org/w3c/dom/Attr.class

deleting: org/w3c/dom/CDATASection.class

deleting: org/w3c/dom/CharacterData.class

deleting: org/w3c/dom/Comment.class

deleting: org/w3c/dom/DOMConfiguration.class

deleting: org/w3c/dom/DOMError.class

deleting: org/w3c/dom/DOMErrorHandler.class

deleting: org/w3c/dom/DOMException.class

deleting: org/w3c/dom/DOMImplementation.class

deleting: org/w3c/dom/DOMImplementationList.class

deleting: org/w3c/dom/DOMImplementationSource.class

deleting: org/w3c/dom/DOMLocator.class

deleting: org/w3c/dom/DOMStringList.class

deleting: org/w3c/dom/Document.class

deleting: org/w3c/dom/DocumentFragment.class

deleting: org/w3c/dom/DocumentType.class

deleting: org/w3c/dom/Element.class

deleting: org/w3c/dom/ElementTraversal.class

deleting: org/w3c/dom/Entity.class

deleting: org/w3c/dom/EntityReference.class

deleting: org/w3c/dom/NameList.class

deleting: org/w3c/dom/NamedNodeMap.class

deleting: org/w3c/dom/Node.class

deleting: org/w3c/dom/NodeList.class

deleting: org/w3c/dom/Notation.class

deleting: org/w3c/dom/ProcessingInstruction.class

deleting: org/w3c/dom/Text.class

deleting: org/w3c/dom/TypeInfo.class

deleting: org/w3c/dom/UserDataHandler.class

deleting: org/w3c/dom/bootstrap/DOMImplementationRegistry$1.class

deleting: org/w3c/dom/bootstrap/DOMImplementationRegistry$2.class

deleting: org/w3c/dom/bootstrap/DOMImplementationRegistry$3.class

deleting: org/w3c/dom/bootstrap/DOMImplementationRegistry$4.class

deleting: org/w3c/dom/bootstrap/DOMImplementationRegistry.class

deleting: org/w3c/dom/css/CSS2Properties.class

deleting: org/w3c/dom/css/CSSCharsetRule.class

deleting: org/w3c/dom/css/CSSFontFaceRule.class

deleting: org/w3c/dom/css/CSSImportRule.class

deleting: org/w3c/dom/css/CSSMediaRule.class

deleting: org/w3c/dom/css/CSSPageRule.class

deleting: org/w3c/dom/css/CSSPrimitiveValue.class

deleting: org/w3c/dom/css/CSSRule.class

deleting: org/w3c/dom/css/CSSRuleList.class

deleting: org/w3c/dom/css/CSSStyleDeclaration.class

deleting: org/w3c/dom/css/CSSStyleRule.class

deleting: org/w3c/dom/css/CSSStyleSheet.class

deleting: org/w3c/dom/css/CSSUnknownRule.class

deleting: org/w3c/dom/css/CSSValue.class

deleting: org/w3c/dom/css/CSSValueList.class

deleting: org/w3c/dom/css/Counter.class

deleting: org/w3c/dom/css/DOMImplementationCSS.class

deleting: org/w3c/dom/css/DocumentCSS.class

deleting: org/w3c/dom/css/ElementCSSInlineStyle.class

deleting: org/w3c/dom/css/RGBColor.class

deleting: org/w3c/dom/css/Rect.class

deleting: org/w3c/dom/css/ViewCSS.class

deleting: org/w3c/dom/events/DocumentEvent.class

deleting: org/w3c/dom/events/Event.class

deleting: org/w3c/dom/events/EventException.class

deleting: org/w3c/dom/events/EventListener.class

deleting: org/w3c/dom/events/EventTarget.class

deleting: org/w3c/dom/events/MouseEvent.class

deleting: org/w3c/dom/events/MutationEvent.class

deleting: org/w3c/dom/events/UIEvent.class

deleting: org/w3c/dom/html/HTMLAnchorElement.class

deleting: org/w3c/dom/html/HTMLAppletElement.class

deleting: org/w3c/dom/html/HTMLAreaElement.class

deleting: org/w3c/dom/html/HTMLBRElement.class

deleting: org/w3c/dom/html/HTMLBaseElement.class

deleting: org/w3c/dom/html/HTMLBaseFontElement.class

deleting: org/w3c/dom/html/HTMLBodyElement.class

deleting: org/w3c/dom/html/HTMLButtonElement.class

deleting: org/w3c/dom/html/HTMLCollection.class

deleting: org/w3c/dom/html/HTMLDListElement.class

deleting: org/w3c/dom/html/HTMLDOMImplementation.class

deleting: org/w3c/dom/html/HTMLDirectoryElement.class

deleting: org/w3c/dom/html/HTMLDivElement.class

deleting: org/w3c/dom/html/HTMLDocument.class

deleting: org/w3c/dom/html/HTMLElement.class

deleting: org/w3c/dom/html/HTMLFieldSetElement.class

deleting: org/w3c/dom/html/HTMLFontElement.class

deleting: org/w3c/dom/html/HTMLFormElement.class

deleting: org/w3c/dom/html/HTMLFrameElement.class

deleting: org/w3c/dom/html/HTMLFrameSetElement.class

deleting: org/w3c/dom/html/HTMLHRElement.class

deleting: org/w3c/dom/html/HTMLHeadElement.class

deleting: org/w3c/dom/html/HTMLHeadingElement.class

deleting: org/w3c/dom/html/HTMLHtmlElement.class

deleting: org/w3c/dom/html/HTMLIFrameElement.class

deleting: org/w3c/dom/html/HTMLImageElement.class

deleting: org/w3c/dom/html/HTMLInputElement.class

deleting: org/w3c/dom/html/HTMLIsIndexElement.class

deleting: org/w3c/dom/html/HTMLLIElement.class

deleting: org/w3c/dom/html/HTMLLabelElement.class

deleting: org/w3c/dom/html/HTMLLegendElement.class

deleting: org/w3c/dom/html/HTMLLinkElement.class

deleting: org/w3c/dom/html/HTMLMapElement.class

deleting: org/w3c/dom/html/HTMLMenuElement.class

deleting: org/w3c/dom/html/HTMLMetaElement.class

deleting: org/w3c/dom/html/HTMLModElement.class

deleting: org/w3c/dom/html/HTMLOListElement.class

deleting: org/w3c/dom/html/HTMLObjectElement.class

deleting: org/w3c/dom/html/HTMLOptGroupElement.class

deleting: org/w3c/dom/html/HTMLOptionElement.class

deleting: org/w3c/dom/html/HTMLParagraphElement.class

deleting: org/w3c/dom/html/HTMLParamElement.class

deleting: org/w3c/dom/html/HTMLPreElement.class

deleting: org/w3c/dom/html/HTMLQuoteElement.class

deleting: org/w3c/dom/html/HTMLScriptElement.class

deleting: org/w3c/dom/html/HTMLSelectElement.class

deleting: org/w3c/dom/html/HTMLStyleElement.class

deleting: org/w3c/dom/html/HTMLTableCaptionElement.class

deleting: org/w3c/dom/html/HTMLTableCellElement.class

deleting: org/w3c/dom/html/HTMLTableColElement.class

deleting: org/w3c/dom/html/HTMLTableElement.class

deleting: org/w3c/dom/html/HTMLTableRowElement.class

deleting: org/w3c/dom/html/HTMLTableSectionElement.class

deleting: org/w3c/dom/html/HTMLTextAreaElement.class

deleting: org/w3c/dom/html/HTMLTitleElement.class

deleting: org/w3c/dom/html/HTMLUListElement.class

deleting: org/w3c/dom/ls/DOMImplementationLS.class

deleting: org/w3c/dom/ls/LSException.class

deleting: org/w3c/dom/ls/LSInput.class

deleting: org/w3c/dom/ls/LSLoadEvent.class

deleting: org/w3c/dom/ls/LSOutput.class

deleting: org/w3c/dom/ls/LSParser.class

deleting: org/w3c/dom/ls/LSParserFilter.class

deleting: org/w3c/dom/ls/LSProgressEvent.class

deleting: org/w3c/dom/ls/LSResourceResolver.class

deleting: org/w3c/dom/ls/LSSerializer.class

deleting: org/w3c/dom/ls/LSSerializerFilter.class

deleting: org/w3c/dom/ranges/DocumentRange.class

deleting: org/w3c/dom/ranges/Range.class

deleting: org/w3c/dom/ranges/RangeException.class

deleting: org/w3c/dom/stylesheets/DocumentStyle.class

deleting: org/w3c/dom/stylesheets/LinkStyle.class

deleting: org/w3c/dom/stylesheets/MediaList.class

deleting: org/w3c/dom/stylesheets/StyleSheet.class

deleting: org/w3c/dom/stylesheets/StyleSheetList.class

deleting: org/w3c/dom/traversal/DocumentTraversal.class

deleting: org/w3c/dom/traversal/NodeFilter.class

deleting: org/w3c/dom/traversal/NodeIterator.class

deleting: org/w3c/dom/traversal/TreeWalker.class

deleting: org/w3c/dom/views/AbstractView.class

deleting: org/w3c/dom/views/DocumentView.class

deleting: org/w3c/dom/xpath/XPathEvaluator.class

deleting: org/w3c/dom/xpath/XPathException.class

deleting: org/w3c/dom/xpath/XPathExpression.class

deleting: org/w3c/dom/xpath/XPathNSResolver.class

deleting: org/w3c/dom/xpath/XPathNamespace.class

deleting: org/w3c/dom/xpath/XPathResult.class

deleting: org/xml/sax/AttributeList.class

deleting: org/xml/sax/Attributes.class

deleting: org/xml/sax/ContentHandler.class

deleting: org/xml/sax/DTDHandler.class

deleting: org/xml/sax/DocumentHandler.class

deleting: org/xml/sax/EntityResolver.class

deleting: org/xml/sax/ErrorHandler.class

deleting: org/xml/sax/HandlerBase.class

deleting: org/xml/sax/InputSource.class

deleting: org/xml/sax/Locator.class

deleting: org/xml/sax/Parser.class

deleting: org/xml/sax/SAXException.class

deleting: org/xml/sax/SAXNotRecognizedException.class

deleting: org/xml/sax/SAXNotSupportedException.class

deleting: org/xml/sax/SAXParseException.class

deleting: org/xml/sax/XMLFilter.class

deleting: org/xml/sax/XMLReader.class

deleting: org/xml/sax/ext/Attributes2.class

deleting: org/xml/sax/ext/Attributes2Impl.class

deleting: org/xml/sax/ext/DeclHandler.class

deleting: org/xml/sax/ext/DefaultHandler2.class

deleting: org/xml/sax/ext/EntityResolver2.class

deleting: org/xml/sax/ext/LexicalHandler.class

deleting: org/xml/sax/ext/Locator2.class

deleting: org/xml/sax/ext/Locator2Impl.class

deleting: org/xml/sax/helpers/AttributeListImpl.class

deleting: org/xml/sax/helpers/AttributesImpl.class

deleting: org/xml/sax/helpers/DefaultHandler.class

deleting: org/xml/sax/helpers/LocatorImpl.class

deleting: org/xml/sax/helpers/NamespaceSupport$Context.class

deleting: org/xml/sax/helpers/NamespaceSupport.class

deleting: org/xml/sax/helpers/NewInstance.class

deleting: org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.class

deleting: org/xml/sax/helpers/ParserAdapter.class

deleting: org/xml/sax/helpers/ParserFactory.class

deleting: org/xml/sax/helpers/SecuritySupport$1.class

deleting: org/xml/sax/helpers/SecuritySupport$2.class

deleting: org/xml/sax/helpers/SecuritySupport$3.class

deleting: org/xml/sax/helpers/SecuritySupport$4.class

deleting: org/xml/sax/helpers/SecuritySupport.class

deleting: org/xml/sax/helpers/XMLFilterImpl.class

deleting: org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.class

deleting: org/xml/sax/helpers/XMLReaderAdapter.class

deleting: org/xml/sax/helpers/XMLReaderFactory.class

scrappy:gwt-2.9.0-mod jimdouglas$ 


Thomas Broyer

unread,
May 18, 2020, 1:42:42 PM5/18/20
to GWT Users
The gwt-dev.jar from the ZIP distribution is an uber-jar with all dependencies needed to run GWT (so you only need gwt-dev.jar and gwt-user.jar in your classpath, and any third-party dependency you're using), so this is expected.
Use gwt-dev from the Central Repository (aka Maven Central) instead, which bundles only Eclipse ECJ and declares dependencies on the rest.

Jim Douglas

unread,
May 18, 2020, 1:59:11 PM5/18/20
to GWT Users
You lost me there, Thomas. I'm not trying to directly interact with gwt-dev.jar; I'm just pointing Eclipse to a GWT SDK, the same way I've been doing for years. Are you saying that standard GWT SDKs are now considered to be incompatible with Eclipse? If that's the situation, is it documented anywhere, and is there an official download for Eclipse-compatible GWT SDKs that I can plugin to that Eclipse dialogue?

Jim Douglas

unread,
May 18, 2020, 2:02:23 PM5/18/20
to GWT Users
FWIW, here's the Eclipse GWT Settings dialogue I'm referring to.

Eclipse-GWT-Settings.png

Dr. Lofi Dewanto

unread,
May 18, 2020, 4:53:49 PM5/18/20
to GWT Users
I have general the problem: Using OpenJDK 11 with my latest Eclipse 2020-03. It always gives me an exception, so that I could not use JDK 11 with my latest Eclipse.

Therefore I still use JDK 8 to run my Eclipse 2020-03... I haven't got any time to search why...

Thanks,
Lofi

Jim Douglas

unread,
May 18, 2020, 4:58:33 PM5/18/20
to GWT Users
What exception?

If you're seeing error messages in the general format "The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml" when you build your GWT project with Java 11, then it's the same issue I described here.

Thomas Broyer

unread,
May 18, 2020, 7:24:56 PM5/18/20
to GWT Users
Disclaimer: I'm not an Eclipse user.

Your problem is that Eclipse flags issues that will only happen if you use the modulepath (which I would say, in an IDE, would mean "if the project is configured to produce a JPMS module"); using the classpath still works. So if Eclipse has a way to say that the project is a JPMS module (apparently, there is https://www.eclipse.org/community/eclipse_newsletter/2018/june/java9andbeyond.php, but things might have changed since then), then disable it and (hopefully) it would solve your issues.

And if you ask me, we should have stopped shipping those ZIP distributions years ago. If you commit your dependencies to your SCM (or anywhere else), then add GWT there as well, downloading the JARs (along with their dependencies) from the Central Repository (use Coursier https://get-coursier.io/, Maven or Ivy to help you with this). I have no idea whether and how the GWT Eclipse Plugin allows you to work with that kind of setup though.

Jim Douglas

unread,
May 18, 2020, 7:47:26 PM5/18/20
to GWT Users
I sincerely appreciate that you're trying to offer advice about this, Thomas, especially in the middle of the night where you are, but it's hard to imagine a non-Eclipse user fully understanding what I'm describing here. Is there nobody who still works on GWT who knows about Eclipse and the GWT Eclipse Plugin? This is a completely vanilla classpath-based, non-modulepath, Eclipse project that we've been updating with new versions of Eclipse, Java, and GWT for a decade. The modulepath conflict is introduced by the JDK itself, with the modularization of the entire JDK starting in Java 9. You can find many other people trying to make sense of this inexplicable error message over the past year or so:


I first ran into this brick wall when I tried to update a Java 11 test environment from Eclipse 2018-12 to Eclipse 2019-03. I finally isolated the problem to the fact that GWT bundles several classes that are also distributed as part of the core JDK. The conflict is that GWT is classpath-oriented, and the JDK is now modulepath-oriented, and as of version 2019-03, Eclipse started to enforce the recent rule that a given class cannot appear in both the modulepath and the classpath. For now, I've hacked around this by stripping the offending classes from GWT to eliminate the conflict. All of the classes that I was forced to elmininate exist in the JDK at least as early as Java 8 (I haven't checked Java 7), so it ought to be possible for the GWT team to simply drop them from gwt-dev.jar, since it can count on them existing in the JDK itself.

I do recognize that your strong preference is that every application should now be based on Maven, but ours isn't; it's a traditional application that just defines the classpath, and rearchitecting our development environment for a few dozen developers just isn't on the table anytime soon.

Vassilis Virvilis

unread,
May 19, 2020, 4:33:45 AM5/19/20
to google-we...@googlegroups.com
Hi,

I am an eclipse user and I am running eclipse with java 11. I am using ant + ivy for building (not Maven) but I am flirting with the idea of Gradle.

I have  GWT Eclipse Plugin 3.0.0.201710131939 com.gwtplugins.eclipse.suite.v3.feature.feature.group GWT Eclipse Plugin.

However I have GWT build from git tree. It is not the latest version though. It is like 6 months old. I haven't yet upgraded to 2.9 but I will (try).

I had specifies my git GWT-SDK as the default GWT-SDK and I am using SDM command-line gwt codeserver for compile and debug cycles. It works great for me. I don't use the eclipse debugger and I don't care for the old development mode.

Java 11 does not have several EE classes so I have moved to Jakarta. Another fun story for weird values of fun.

I remember having several issues with the java modularization thingy all over my workspace with non GWT projects also but I don't remember how I solved it.

This how I have it in my project's setup. I don't need to manually trim classes from GWT

image.png

So it is possible to have eclipse, java 11 and a newish GWT.

Hope that helps.




--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/73dd2919-a058-47fc-b253-79de2c3da9c9%40googlegroups.com.


--
Vassilis Virvilis

Jim Douglas

unread,
May 19, 2020, 5:23:21 AM5/19/20
to GWT Users
Hi Vassilis,

You'll see an error in the format I mentioned ("The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml") for each time your application directly references any class that's included in gwt-dev.jar and also exists in the core JDK (e.g. any of the classes that you see in my first message at the top of this thread). If you don't happen to have used any of those classes, then you won't see these errors.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsub...@googlegroups.com.


--
Vassilis Virvilis

Vassilis Virvilis

unread,
May 19, 2020, 5:41:52 AM5/19/20
to google-we...@googlegroups.com
Aah now I see,

I just added

   javax.xml.stream.util.EventReaderDelegate erd;

in my GWT project and I saw the error.


Hi Vassilis,

To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.


--
Vassilis Virvilis

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/23cd0334-d158-474b-8fe7-bf9f0c80d311%40googlegroups.com.


--
Vassilis Virvilis

Vassilis Virvilis

unread,
May 19, 2020, 5:47:21 AM5/19/20
to google-we...@googlegroups.com
Sorry premature hit on the Send button.

The reason I don't have this is that I have completely separate my frontends from my backends. Usually this is tricky (impossible for me) if you use GWT RPC. GWT RPC requires gwt classes in the frontend. I am using CXF in the backend and RestyGWT in the front end and I have converted my service to a Rest Service (sort of).

So my GWT projects are frontend only and link with js and other gwt libraries and not with the javaee classes.

You have my sympathies. You are in a tight spot indeed.


--
Vassilis Virvilis

Thomas Broyer

unread,
May 19, 2020, 5:51:33 AM5/19/20
to GWT Users

On Tuesday, May 19, 2020 at 1:47:26 AM UTC+2, Jim Douglas wrote:
I sincerely appreciate that you're trying to offer advice about this, Thomas, especially in the middle of the night where you are, but it's hard to imagine a non-Eclipse user fully understanding what I'm describing here. Is there nobody who still works on GWT who knows about Eclipse and the GWT Eclipse Plugin? This is a completely vanilla classpath-based, non-modulepath, Eclipse project that we've been updating with new versions of Eclipse, Java, and GWT for a decade. The modulepath conflict is introduced by the JDK itself, with the modularization of the entire JDK starting in Java 9. You can find many other people trying to make sense of this inexplicable error message over the past year or so:


I first ran into this brick wall when I tried to update a Java 11 test environment from Eclipse 2018-12 to Eclipse 2019-03. I finally isolated the problem to the fact that GWT bundles several classes that are also distributed as part of the core JDK. The conflict is that GWT is classpath-oriented, and the JDK is now modulepath-oriented, and as of version 2019-03, Eclipse started to enforce the recent rule that a given class cannot appear in both the modulepath and the classpath.

I found https://bugs.eclipse.org/bugs/show_bug.cgi?id=536928#c64 which describes how to workaround it (apparently not working in every case, see comments below).
They say Eclipse is right and the JDK is wrong, based on https://bugs.openjdk.java.net/browse/JDK-8215739, but that bug has been postponed from 13 to 14, to 15, and now to 'tbd', so it's not clear what the expected behavior is; but there's a discrepancy between the JDK and Eclipse.
 
For now, I've hacked around this by stripping the offending classes from GWT to eliminate the conflict. All of the classes that I was forced to elmininate exist in the JDK at least as early as Java 8 (I haven't checked Java 7), so it ought to be possible for the GWT team to simply drop them from gwt-dev.jar, since it can count on them existing in the JDK itself.

Yes, this is probably a good idea.
 
I do recognize that your strong preference is that every application should now be based on Maven, but ours isn't; it's a traditional application that just defines the classpath, and rearchitecting our development environment for a few dozen developers just isn't on the table anytime soon.

My preference is not on Maven (not at all actually), but some form of "managed dependencies", be it via Coursier that I mentioned earlier.
There are reasons for sharing JAR files between developers (either checked into the SCM, or shared by some other mechanism), but then I believe that all dependencies should be managed that way. And this is mostly unrelated to how you grabbed the JAR files (where I think you should use some form of "managed dependencies": simplest form would be listing your dependencies with their version, possible exclusions and overrides for transitive dependencies, then use a tool, like Coursier or Ivy, to resolve all those files and warn you of version conflicts).
Reply all
Reply to author
Forward
0 new messages