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<[email protected]> 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<[email protected]> 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>