Being security conscious, as every hacker should be, I thought I'd configure my target to SNMPv3, that was my second mistake with the plugin development. All of a sudden my agent log files were engulfed with those ever so helpful java exceptions. Okay so they are always engulfed with java exceptions but these are the ones you're interested in today.
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Unknown authentication algorithm : [SHA]at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)at java.util.concurrent.FutureTask.get(FutureTask.java:91)at oracle.sysman.gcagent.task.TaskFutureImpl.get(TaskFutureImpl.java:320)at oracle.sysman.gcagent.metadata.impl.collection.CollectionItem$CollectionItemTask.getSubTaskFuture(CollectionItem.java:2850)at oracle.sysman.gcagent.metadata.impl.collection.CollectionItem$CollectionItemTask.uploadAtomic(CollectionItem.java:3040)at oracle.sysman.gcagent.metadata.impl.collection.CollectionItem$CollectionItemTask.run(CollectionItem.java:2549)at oracle.sysman.gcagent.task.AbstractTemplateTask.call(AbstractTemplateTask.java:198)at oracle.sysman.gcagent.task.AbstractTemplateTask.call(AbstractTemplateTask.java:49)at oracle.sysman.gcagent.task.scheduler.DispatchingTaskScheduler$ReschedulingHelper$ReschedulingTask.call(DispatchingTaskScheduler.java:439)at oracle.sysman.gcagent.task.scheduler.DispatchingTaskScheduler$ReschedulingHelper$ReschedulingTask.call(DispatchingTaskScheduler.java:401)at oracle.sysman.gcagent.task.executor.DiagWrappedTask.call(DiagWrappedTask.java:60)at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.accountedCall(TaskFutureImpl.java:599)at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.call(TaskFutureImpl.java:643)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at oracle.sysman.gcagent.task.TaskFutureImpl.run1(TaskFutureImpl.java:380)at oracle.sysman.gcagent.task.TaskFutureImpl.run(TaskFutureImpl.java:337)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)at oracle.sysman.gcagent.task.executor.TrackThreadFactory$1.run(TrackThreadFactory.java:54)at oracle.sysman.gcagent.util.system.GCAThread$RunnableWrapper.run(GCAThread.java:189)at java.lang.Thread.run(Thread.java:662)Caused by: java.lang.IllegalArgumentException: Unknown authentication algorithm : [SHA]at com.sun.management.snmp.usm.SnmpUsmPasswordLcd.translateAndInsert(SnmpUsmPasswordLcd.java:742)at com.sun.management.snmp.usm.SnmpUsmPasswordLcd.addUser(SnmpUsmPasswordLcd.java:371)at oracle.sysman.gcagent.addon.fetchlet.snmp.SNMPFetchlet.discoverTarget(SNMPFetchlet.java:1455)at oracle.sysman.gcagent.addon.fetchlet.snmp.SNMPFetchlet.processV3Request(SNMPFetchlet.java:1318)at oracle.sysman.gcagent.addon.fetchlet.snmp.SNMPFetchlet.processRequests(SNMPFetchlet.java:1070)at oracle.sysman.gcagent.addon.fetchlet.snmp.SNMPFetchlet.getMetric(SNMPFetchlet.java:955)at oracle.sysman.gcagent.target.interaction.execution.FetchletFactory.getMetric(FetchletFactory.java:427)at oracle.sysman.gcagent.target.interaction.execution.ExecuteTask.executeQueryDescriptor(ExecuteTask.java:1050)at oracle.sysman.gcagent.target.interaction.execution.ExecuteTask.runTask(ExecuteTask.java:3905)at oracle.sysman.gcagent.target.interaction.execution.ExecuteTask.call(ExecuteTask.java:5098)at oracle.sysman.gcagent.metadata.impl.collection.MetricColl$1.call(MetricColl.java:552)at oracle.sysman.gcagent.metadata.impl.collection.MetricColl$1.call(MetricColl.java:513)at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.accountedCall(TaskFutureImpl.java:599)at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.call(TaskFutureImpl.java:643)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at oracle.sysman.gcagent.task.TaskFutureImpl.run1(TaskFutureImpl.java:380)at oracle.sysman.gcagent.task.TaskFutureImpl.run(TaskFutureImpl.java:337)at oracle.sysman.gcagent.task.CompositeTask.runSubtask(CompositeTask.java:70)at oracle.sysman.gcagent.task.CompositeTask.run(CompositeTask.java:77)at oracle.sysman.gcagent.metadata.impl.collection.CollectionItem$CollectionItemTask.run(CollectionItem.java:2536)... 16 more
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Unknown authentication algorithm : [MD5]
I eventually managed to track this bug 19081194 - SNMP CREDENTIALS UI AND FETCHLET/RECEIVELET DISAGREE ABOUT PROTOCOL NAMES, unfortunately at the time of writing I'm still waiting for a fix.