hibernate/hibernate-orm · error · ConfigurationException

Unable to perform unmarshalling at line number %s and column

Error message

Unable to perform unmarshalling at line number %s and column %s in %s %s. Message: %s

What it means

Error "Unable to perform unmarshalling at line number %s and column %s in %s %s. Message: %s" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/boot/cfgxml/internal/JaxbCfgProcessor.java:111

	private JaxbCfgHibernateConfiguration unmarshal(XMLEventReader staxEventReader, final Origin origin) {
		final XMLEvent event = xmlEvent( staxEventReader );
		if ( !isNamespaced( event.asStartElement() ) ) {
			// if the elements are not namespaced, wrap the reader in a reader which will namespace them as pulled.
			BOOT_LOGGER.cfgXmlDocumentDidNotDefineNamespaces();
			staxEventReader = new NamespaceAddingEventReader( staxEventReader, HIBERNATE_CONFIGURATION_URI );
		}

		final var handler = new ContextProvidingValidationEventHandler();
		try {
			final var unmarshaller =
					JAXBContext.newInstance( JaxbCfgHibernateConfiguration.class )
							.createUnmarshaller();
			unmarshaller.setSchema( schema() );
			unmarshaller.setEventHandler( handler );
			return (JaxbCfgHibernateConfiguration) unmarshaller.unmarshal( staxEventReader );
		}
		catch ( JAXBException e ) {
			throw new ConfigurationException(
					"Unable to perform unmarshalling at line number " + handler.getLineNumber()
							+ " and column " + handler.getColumnNumber()
							+ " in " + origin.getType().name() + " " + origin.getName()
							+ ". Message: " + handler.getMessage(), e
			);
		}
	}

	private static XMLEvent xmlEvent(XMLEventReader staxEventReader) {
		try {
			XMLEvent event = staxEventReader.peek();
			while ( event != null && !event.isStartElement() ) {
				staxEventReader.nextEvent();
				event = staxEventReader.peek();
			}
			if ( event == null ) {
				throw new HibernateException( "Could not locate root element" );
			}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Validate the cfg.xml against the hibernate-configuration XSD at the reported line/column; fix the malformed element or attribute.
  2. Check for unclosed tags, invalid characters, or wrong namespaces in the XML.
  3. Compare the file against a known-good hibernate.cfg.xml template.

When it happens

Trigger: JAXB cannot parse the XML configuration document.

Common situations: Malformed or schema-violating hibernate.cfg.xml content, or a document missing its expected root element.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/e819af53aeec7573. Report an issue: GitHub.