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>


Reply via email to