You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@manifoldcf.apache.org by Farzad Valad <ho...@farzad.net> on 2011/06/08 19:00:27 UTC
RegisterOutput Error
Any idea why I would get this failure on registering my connector.
Hadn't seen it before. I was trying to setup a new system and was
issuing commands to setup the database. Note I was able to register
Null Output and File System connectors without error.
D:\Program
Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
org.apache.manifoldcf.agents.RegisterOutput org.apache.manifoldcf.agents.
output.dupfinder.DupFinderConnector DupFinder
Configuration file successfully read
Exception in thread "main" java.lang.ClassCastException:
java.lang.NullPointerException cannot be cast to
org.apache.manifoldcf.core.interfaces.ManifoldCFException
at
org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
at
org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
at
org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
at
org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
at
org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
at
org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
D:\Program
Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
org.apache.manifoldcf.agents.RegisterOutput
org.apache.manifoldcf.agents.output.nullconnector.NullConnector NullOutput
Configuration file successfully read
Successfully registered output connector
'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
D:\Program
Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
org.apache.manifoldcf.crawler.Register
org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector FileSystem
Configuration file successfully read
Successfully registered connector
'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
D:\Program Files\Apache\ManifoldCF\myMCF>
Re: RegisterOutput Error
Posted by Karl Wright <da...@gmail.com>.
Actually, for an output connector you cannot use the "connectors"
logger, since that is a pull-agent logger. Instead you need to use
the "ingest" logger, which is the agents equivalent.
The book covers this in chapter 8.
Karl
On Wed, Jun 8, 2011 at 3:47 PM, Farzad Valad <ho...@farzad.net> wrote:
> You were absolutely right as always. The line in my code was
> "Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");" inside the
> constructor that was causing this. I added this line after I had registered
> my code in the old system and hence never saw this error till setting up a
> new system. I guess I can't log inside the constructor?
>
> On 6/8/2011 2:34 PM, Karl Wright wrote:
>>
>> Ok, I have checked in a fix for the RuntimeException handling. If you
>> try the new code, you should get a full trace for the NPE that is
>> causing the problem.
>>
>> Karl
>>
>> On Wed, Jun 8, 2011 at 3:20 PM, Karl Wright<da...@gmail.com> wrote:
>>>
>>> The code is:
>>>
>>> Throwable z = e.getTargetException();
>>> if (z instanceof Error)
>>> throw (Error)z;
>>> else
>>> throw (ManifoldCFException)z;
>>>
>>>
>>> The problem cannot be that z is null, because "z instanceof Error"
>>> does not blow up. Indeed:
>>> "java.lang.NullPointerException cannot be cast to
>>> org.apache.manifoldcf.core.interfaces.ManifoldCFException" is the
>>> message. The code is not resilient against RuntimeError exceptions is
>>> one problem.
>>>
>>> The problem with your connector code is therefore a NPE being thrown.
>>> I'll check in changes here and it should be possible for you to tell
>>> what is happening.
>>>
>>> Karl
>>>
>>>
>>> On Wed, Jun 8, 2011 at 2:55 PM, Farzad Valad<ho...@farzad.net> wrote:
>>>>
>>>> Looking at the OutputConnectorFactory code, it seems there are two
>>>> problems.
>>>> The exception handling has a bug assuming a null value won't be passed.
>>>> Line 149 says "throw (ManifoldCFException) z;" where z is null. The
>>>> main
>>>> problem is why registering my connector is now producing an
>>>> InvocationTargetException? and it wasn't a problem before?
>>>>
>>>> public DupFinderConnector() throws ManifoldCFException {
>>>> Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");
>>>>
>>>> calendar = Calendar.getInstance();
>>>> hashGen = new HashsumGenerator();
>>>> }
>>>>
>>>>
>>>> On 6/8/2011 12:00 PM, Farzad Valad wrote:
>>>>>
>>>>> Any idea why I would get this failure on registering my connector.
>>>>> Hadn't
>>>>> seen it before. I was trying to setup a new system and was issuing
>>>>> commands
>>>>> to setup the database. Note I was able to register Null Output and
>>>>> File
>>>>> System connectors without error.
>>>>>
>>>>> D:\Program
>>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>>> org.apache.manifoldcf.agents.RegisterOutput
>>>>> org.apache.manifoldcf.agents.
>>>>> output.dupfinder.DupFinderConnector DupFinder
>>>>> Configuration file successfully read
>>>>> Exception in thread "main" java.lang.ClassCastException:
>>>>> java.lang.NullPointerException cannot be cast to
>>>>> org.apache.manifoldcf.core.interfaces.ManifoldCFException
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
>>>>> at
>>>>>
>>>>> org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
>>>>>
>>>>> D:\Program
>>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>>> org.apache.manifoldcf.agents.RegisterOutput
>>>>> org.apache.manifoldcf.agents.output.nullconnector.NullConnector
>>>>> NullOutput
>>>>> Configuration file successfully read
>>>>> Successfully registered output connector
>>>>> 'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
>>>>>
>>>>> D:\Program
>>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>>> org.apache.manifoldcf.crawler.Register
>>>>> org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector
>>>>> FileSystem
>>>>> Configuration file successfully read
>>>>> Successfully registered connector
>>>>> 'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
>>>>>
>>>>> D:\Program Files\Apache\ManifoldCF\myMCF>
>>>>
>
>
Re: RegisterOutput Error
Posted by Farzad Valad <ho...@farzad.net>.
You were absolutely right as always. The line in my code was
"Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");" inside
the constructor that was causing this. I added this line after I had
registered my code in the old system and hence never saw this error till
setting up a new system. I guess I can't log inside the constructor?
On 6/8/2011 2:34 PM, Karl Wright wrote:
> Ok, I have checked in a fix for the RuntimeException handling. If you
> try the new code, you should get a full trace for the NPE that is
> causing the problem.
>
> Karl
>
> On Wed, Jun 8, 2011 at 3:20 PM, Karl Wright<da...@gmail.com> wrote:
>> The code is:
>>
>> Throwable z = e.getTargetException();
>> if (z instanceof Error)
>> throw (Error)z;
>> else
>> throw (ManifoldCFException)z;
>>
>>
>> The problem cannot be that z is null, because "z instanceof Error"
>> does not blow up. Indeed:
>> "java.lang.NullPointerException cannot be cast to
>> org.apache.manifoldcf.core.interfaces.ManifoldCFException" is the
>> message. The code is not resilient against RuntimeError exceptions is
>> one problem.
>>
>> The problem with your connector code is therefore a NPE being thrown.
>> I'll check in changes here and it should be possible for you to tell
>> what is happening.
>>
>> Karl
>>
>>
>> On Wed, Jun 8, 2011 at 2:55 PM, Farzad Valad<ho...@farzad.net> wrote:
>>> Looking at the OutputConnectorFactory code, it seems there are two problems.
>>> The exception handling has a bug assuming a null value won't be passed.
>>> Line 149 says "throw (ManifoldCFException) z;" where z is null. The main
>>> problem is why registering my connector is now producing an
>>> InvocationTargetException? and it wasn't a problem before?
>>>
>>> public DupFinderConnector() throws ManifoldCFException {
>>> Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");
>>>
>>> calendar = Calendar.getInstance();
>>> hashGen = new HashsumGenerator();
>>> }
>>>
>>>
>>> On 6/8/2011 12:00 PM, Farzad Valad wrote:
>>>> Any idea why I would get this failure on registering my connector. Hadn't
>>>> seen it before. I was trying to setup a new system and was issuing commands
>>>> to setup the database. Note I was able to register Null Output and File
>>>> System connectors without error.
>>>>
>>>> D:\Program
>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>> org.apache.manifoldcf.agents.RegisterOutput org.apache.manifoldcf.agents.
>>>> output.dupfinder.DupFinderConnector DupFinder
>>>> Configuration file successfully read
>>>> Exception in thread "main" java.lang.ClassCastException:
>>>> java.lang.NullPointerException cannot be cast to
>>>> org.apache.manifoldcf.core.interfaces.ManifoldCFException
>>>> at
>>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
>>>> at
>>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
>>>> at
>>>> org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
>>>> at
>>>> org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
>>>> at
>>>> org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
>>>> at
>>>> org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
>>>>
>>>> D:\Program
>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>> org.apache.manifoldcf.agents.RegisterOutput
>>>> org.apache.manifoldcf.agents.output.nullconnector.NullConnector NullOutput
>>>> Configuration file successfully read
>>>> Successfully registered output connector
>>>> 'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
>>>>
>>>> D:\Program
>>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>>> org.apache.manifoldcf.crawler.Register
>>>> org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector FileSystem
>>>> Configuration file successfully read
>>>> Successfully registered connector
>>>> 'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
>>>>
>>>> D:\Program Files\Apache\ManifoldCF\myMCF>
>>>
Re: RegisterOutput Error
Posted by Karl Wright <da...@gmail.com>.
Ok, I have checked in a fix for the RuntimeException handling. If you
try the new code, you should get a full trace for the NPE that is
causing the problem.
Karl
On Wed, Jun 8, 2011 at 3:20 PM, Karl Wright <da...@gmail.com> wrote:
> The code is:
>
> Throwable z = e.getTargetException();
> if (z instanceof Error)
> throw (Error)z;
> else
> throw (ManifoldCFException)z;
>
>
> The problem cannot be that z is null, because "z instanceof Error"
> does not blow up. Indeed:
> "java.lang.NullPointerException cannot be cast to
> org.apache.manifoldcf.core.interfaces.ManifoldCFException" is the
> message. The code is not resilient against RuntimeError exceptions is
> one problem.
>
> The problem with your connector code is therefore a NPE being thrown.
> I'll check in changes here and it should be possible for you to tell
> what is happening.
>
> Karl
>
>
> On Wed, Jun 8, 2011 at 2:55 PM, Farzad Valad <ho...@farzad.net> wrote:
>> Looking at the OutputConnectorFactory code, it seems there are two problems.
>> The exception handling has a bug assuming a null value won't be passed.
>> Line 149 says "throw (ManifoldCFException) z;" where z is null. The main
>> problem is why registering my connector is now producing an
>> InvocationTargetException? and it wasn't a problem before?
>>
>> public DupFinderConnector() throws ManifoldCFException {
>> Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");
>>
>> calendar = Calendar.getInstance();
>> hashGen = new HashsumGenerator();
>> }
>>
>>
>> On 6/8/2011 12:00 PM, Farzad Valad wrote:
>>>
>>> Any idea why I would get this failure on registering my connector. Hadn't
>>> seen it before. I was trying to setup a new system and was issuing commands
>>> to setup the database. Note I was able to register Null Output and File
>>> System connectors without error.
>>>
>>> D:\Program
>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>> org.apache.manifoldcf.agents.RegisterOutput org.apache.manifoldcf.agents.
>>> output.dupfinder.DupFinderConnector DupFinder
>>> Configuration file successfully read
>>> Exception in thread "main" java.lang.ClassCastException:
>>> java.lang.NullPointerException cannot be cast to
>>> org.apache.manifoldcf.core.interfaces.ManifoldCFException
>>> at
>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
>>> at
>>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
>>> at
>>> org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
>>> at
>>> org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
>>> at
>>> org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
>>> at
>>> org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
>>>
>>> D:\Program
>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>> org.apache.manifoldcf.agents.RegisterOutput
>>> org.apache.manifoldcf.agents.output.nullconnector.NullConnector NullOutput
>>> Configuration file successfully read
>>> Successfully registered output connector
>>> 'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
>>>
>>> D:\Program
>>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>>> org.apache.manifoldcf.crawler.Register
>>> org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector FileSystem
>>> Configuration file successfully read
>>> Successfully registered connector
>>> 'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
>>>
>>> D:\Program Files\Apache\ManifoldCF\myMCF>
>>
>>
>
Re: RegisterOutput Error
Posted by Karl Wright <da...@gmail.com>.
The code is:
Throwable z = e.getTargetException();
if (z instanceof Error)
throw (Error)z;
else
throw (ManifoldCFException)z;
The problem cannot be that z is null, because "z instanceof Error"
does not blow up. Indeed:
"java.lang.NullPointerException cannot be cast to
org.apache.manifoldcf.core.interfaces.ManifoldCFException" is the
message. The code is not resilient against RuntimeError exceptions is
one problem.
The problem with your connector code is therefore a NPE being thrown.
I'll check in changes here and it should be possible for you to tell
what is happening.
Karl
On Wed, Jun 8, 2011 at 2:55 PM, Farzad Valad <ho...@farzad.net> wrote:
> Looking at the OutputConnectorFactory code, it seems there are two problems.
> The exception handling has a bug assuming a null value won't be passed.
> Line 149 says "throw (ManifoldCFException) z;" where z is null. The main
> problem is why registering my connector is now producing an
> InvocationTargetException? and it wasn't a problem before?
>
> public DupFinderConnector() throws ManifoldCFException {
> Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");
>
> calendar = Calendar.getInstance();
> hashGen = new HashsumGenerator();
> }
>
>
> On 6/8/2011 12:00 PM, Farzad Valad wrote:
>>
>> Any idea why I would get this failure on registering my connector. Hadn't
>> seen it before. I was trying to setup a new system and was issuing commands
>> to setup the database. Note I was able to register Null Output and File
>> System connectors without error.
>>
>> D:\Program
>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>> org.apache.manifoldcf.agents.RegisterOutput org.apache.manifoldcf.agents.
>> output.dupfinder.DupFinderConnector DupFinder
>> Configuration file successfully read
>> Exception in thread "main" java.lang.ClassCastException:
>> java.lang.NullPointerException cannot be cast to
>> org.apache.manifoldcf.core.interfaces.ManifoldCFException
>> at
>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
>> at
>> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
>> at
>> org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
>> at
>> org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
>> at
>> org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
>> at
>> org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
>>
>> D:\Program
>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>> org.apache.manifoldcf.agents.RegisterOutput
>> org.apache.manifoldcf.agents.output.nullconnector.NullConnector NullOutput
>> Configuration file successfully read
>> Successfully registered output connector
>> 'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
>>
>> D:\Program
>> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
>> org.apache.manifoldcf.crawler.Register
>> org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector FileSystem
>> Configuration file successfully read
>> Successfully registered connector
>> 'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
>>
>> D:\Program Files\Apache\ManifoldCF\myMCF>
>
>
Re: RegisterOutput Error
Posted by Farzad Valad <ho...@farzad.net>.
Looking at the OutputConnectorFactory code, it seems there are two
problems. The exception handling has a bug assuming a null value won't
be passed. Line 149 says "throw (ManifoldCFException) z;" where z is
null. The main problem is why registering my connector is now producing
an InvocationTargetException? and it wasn't a problem before?
public DupFinderConnector() throws ManifoldCFException {
Logging.connectors.log(Level.ALL, "DupFinder Version 1.0.0");
calendar = Calendar.getInstance();
hashGen = new HashsumGenerator();
}
On 6/8/2011 12:00 PM, Farzad Valad wrote:
> Any idea why I would get this failure on registering my connector.
> Hadn't seen it before. I was trying to setup a new system and was
> issuing commands to setup the database. Note I was able to register
> Null Output and File System connectors without error.
>
> D:\Program
> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
> org.apache.manifoldcf.agents.RegisterOutput org.apache.manifoldcf.agents.
> output.dupfinder.DupFinderConnector DupFinder
> Configuration file successfully read
> Exception in thread "main" java.lang.ClassCastException:
> java.lang.NullPointerException cannot be cast to
> org.apache.manifoldcf.core.interfaces.ManifoldCFException
> at
> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.getConnectorNoCheck(OutputConnectorFactory.java:149)
> at
> org.apache.manifoldcf.agents.interfaces.OutputConnectorFactory.install(OutputConnectorFactory.java:50)
> at
> org.apache.manifoldcf.agents.outputconnmgr.OutputConnectorManager.registerConnector(OutputConnectorManager.java:180)
> at
> org.apache.manifoldcf.agents.RegisterOutput.doExecute(RegisterOutput.java:47)
> at
> org.apache.manifoldcf.agents.TransactionalAgentsInitializationCommand.execute(TransactionalAgentsInitializationCommand.java:43)
> at
> org.apache.manifoldcf.agents.RegisterOutput.main(RegisterOutput.java:70)
>
> D:\Program
> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
> org.apache.manifoldcf.agents.RegisterOutput
> org.apache.manifoldcf.agents.output.nullconnector.NullConnector
> NullOutput
> Configuration file successfully read
> Successfully registered output connector
> 'org.apache.manifoldcf.agents.output.nullconnector.NullConnector'
>
> D:\Program
> Files\Apache\ManifoldCF\myMCF>processes\script\executecommand.bat
> org.apache.manifoldcf.crawler.Register
> org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector
> FileSystem
> Configuration file successfully read
> Successfully registered connector
> 'org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector'
>
> D:\Program Files\Apache\ManifoldCF\myMCF>