SNMP4J version 3.2.0 seems to ignore target’s custom timeout setting both for UserTarget and CommunityTarget.
Probably it’s due to these classes #duplicate method called in Snmp.PendingRequest#constructor is not copying retries/timeout fields to replica objects. These fields are instead set to defaults provided by the AbstractTarget class (retries = 0, timeout = 1000 ms). Later
Snmp.PendingRequest#pduHandleAssigned method uses these fields from replica instances to calculate a retry timeout (Snmp.java lines 1766-1769).
Target’s version field probably should be replicated too because it’s used in Snmp.PendingRequest#discoverContextEngineID.
Currently in replica targets it’s always set to AbstractTarget’s default (SnmpConstants.version3).