You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Lewis John McGibbney (JIRA)" <ji...@apache.org> on 2015/08/28 22:18:46 UTC
[jira] [Commented] (GORA-428) Null pointer exception caused by
incorrect handling of gora.mongodb.login values that don't validate
[ https://issues.apache.org/jira/browse/GORA-428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14720505#comment-14720505 ]
Lewis John McGibbney commented on GORA-428:
-------------------------------------------
[~kevinfindlay] thank you for reporting, I only just noticed this and I am not actively using MongoStore. Are you able to provide a patch?
> Null pointer exception caused by incorrect handling of gora.mongodb.login values that don't validate
> ----------------------------------------------------------------------------------------------------
>
> Key: GORA-428
> URL: https://issues.apache.org/jira/browse/GORA-428
> Project: Apache Gora
> Issue Type: Bug
> Components: gora-mongodb
> Affects Versions: 0.5
> Environment: Ubuntu, Nutch2
> Reporter: Kevin Findlay
> Priority: Minor
>
> A null pointer exception occurs when the gora.mongodb.login=nutch does not validate.
> Line 250 of the MongoStore class in method "private DB getDB(final String servers, final String dbname, final String login, final String secret) throws UnknownHostException" returns a null when the user is not validated.
> if (login != null && secret != null) {
> ****PROBLEM**** auth = db.authenticate(login, secret.toCharArray());
> }
> This causes the method to return a null to :
> mongoClientDB = getDB(vPropMongoServers, vPropMongoDb, vPropMongoLogin, vPropMongoSecret);
> In line 173 of MongoStore "public void initialize(final Class<K> keyClass,
> final Class<T> pPersistentClass, final Properties properties)"
> The code attempts to use this null value
> *****PROBLEM****
> as mongoClientColl = mongoClientDB
> .getCollection(mapping.getCollectionName());
> The solution is to check for a null point for mongoClientDB prior to use or, better, write specific code to report when a login to MongoDB fails due to authentication.
> ERROR MESSAGE
> InjectorJob: org.apache.gora.util.GoraException: java.lang.NullPointerException
> at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:169)
> at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:137)
> at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:78)
> at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:218)
> at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252)
> at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
> at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284)
> Caused by: java.lang.NullPointerException
> at org.apache.gora.mongodb.store.MongoStore.initialize(MongoStore.java:173)
> at org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:104)
> at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:163)
> ... 7 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)