Small correction in JndiServiceImpl

Description

After upgrade to 4 Hibernate started crashing when using the JDBC poolmanager I am using. Turns out that it does not implement JNDI getNameParser(). Hibernate does not do a null check there. After a little tweak it was working again.

@Override
public Object locate(String jndiName) {
InitialContext initialContext = buildInitialContext();
Name name = null;
try {
name = parseName( jndiName, initialContext );
}
catch(JndiException je)
{
if(je.getMessage().indexOf("implemented") == -1)
throw je;
}

try {
if(name != null)
return initialContext.lookup(name);
else
return initialContext.lookup(jndiName);
}
catch ( NamingException e ) {
throw new JndiException( "Unable to lookup JNDI name [" + jndiName + "]", e );
}
finally {
cleanUp( initialContext );
}
}

private Name parseName(String jndiName, Context context) {
try {
NameParser np = context.getNameParser( "" );
if(np == null)
throw new JndiException("NameParser not implemented", null);
return np.parse( jndiName );
}
catch ( InvalidNameException e ) {
throw new JndiNameException( "JNDI name [" + jndiName + "] was not valid", e );
}
catch ( NamingException e ) {
throw new JndiException( "Error parsing JNDI name [" + jndiName + "]", e );
}
}

(I could have added an extra Exception, but I did not want to create an extra dependency for me to patch)

Activity

Show:

Steve Ebersole October 28, 2015 at 3:24 AM

As part of verifying that this issue affects 5.0, please just set the "Affects version". Leave the "verify-affects-5.0" label and leave the issue in "Awaiting Response" status; these are critical for us to be able to track these verifications and triage them. Thanks.

Steve Ebersole October 27, 2015 at 7:15 PM

This bug report does not indicate that the reported issue affects version 5.x. Versions prior to 5.x are no longer maintained. It would be a great help to the Hibernate team and community for someone to verify that the reported issue still affects version 5.x. If so, please add the 5.x version that you verified with to the list of affected-versions and attach the (preferably SSCCE) test case you used to do the verification to the report; from there the issues will be looked at during our triage meetings.

For details, see http://in.relation.to/2015/10/27/great-jira-cleanup-2015/

Out of Date

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created August 12, 2013 at 12:17 PM
Updated April 8, 2022 at 3:43 PM
Resolved April 8, 2022 at 3:43 PM