CHANGE LOG OF SNMP4J-AgentX =========================== [2024-04-11] v4.0.2 (Requires SNMP4J-Agent 3.7.2, SNMP4J-Unix-Transport 1.1.0, SNMP4J-Agent-DB 3.7.2, and SNMP4J v3.8.0 or later) * Fixed: Master and Subagent did not close persistent DB when shutting down agent, which could have lead to a file handle held too long. [2024-04-08] v4.0.1 (Requires SNMP4J-Agent 3.7.1, SNMP4J-Unix-Transport 1.1.0, SNMP4J-Agent-DB 3.7.1, and SNMP4J v3.8.0 or later) * Fixed: Regression for GET request processing in SNMP4J-Agent 3.7.0 by updating this dependency to 3.7.1. [2024-04-03] v4.0.0 (Requires SNMP4J-Agent 3.7.0, SNMP4J-Unix-Transport 1.1.0, SNMP4J-Agent-DB 3.7.0, and SNMP4J v3.8.0 or later) * Added: Unix domain transport mapping support for AgentX connections. * Added: Support for deadlock-prevention as implemented by SNMP4J-Agent 3.7.0 for sub-agent and master agent. [2023-03-30] v3.6.1 (Requires SNMP4J-Agent 3.6.6, SNMP4J-Agent-DB 3.6.4, and SNMP4J v3.7.7 or later) * Updated: All dependencies, including SNMP4J 3.7.7 which includes some TLS related fixes. [2022-11-11] v3.6.0 (Requires SNMP4J-Agent 3.6.5, SNMP4J-Agent-DB 3.6.3, and SNMP4J v3.7.4 or later) * SECURITY [AS-38]: Command processing of GETBULK PDUs with large max-repetition values could lead to DoS/OutOfMemory in AgentXMasterAgent. Now repetition sub-requests are limited to the maximum theoretical possible variable bindings fitting into the maximum sized response PDU - according the maximum outbound message size. * Updated: Dependencies to SNMP4J-Agent 3.6.5, SNMP4J-Agent-DB 3.6.3, and SNMP4J v3.7.4. * Improved: Event objects that are serializable now have serializable members if those are non-optional. [2021-12-15] v3.5.3 (Requires SNMP4J-Agent 3.5.4, SNMP4J-Agent-DB 3.5.4, and SNMP4J v3.6.4 or later) * Updated: Dependencies to SNMP4J-Agent 3.5.4, SNMP4J-Agent-DB 3.5.4, and SNMP4J v3.6.4. [2021-12-04] v3.5.2 (Requires SNMP4J-Agent 3.5.3, SNMP4J-Agent-DB 3.5.3, and SNMP4J v3.6.3 or later) * Added: jar-with-dependencies is now part of the distribution file. * Fixed [AS-24]: Made sure that authPassword and privPassword hidden columns are null if user is localised. This fixes a regression caused by SFJ-222 that generated wrong keys if users were initially loaded from properties file and localisation key was given. * Improved: Suppressed redundant usmUserChange event processing on USM entries created by UsmMIB itself. [2021-11-23] v3.5.1 (Requires SNMP4J-Agent 3.5.2, SNMP4J-Agent-DB 3.5.2, and SNMP4J v3.6.2 or later) * Fixed: Typo in MOQuery.subtractScope(MOScope scope) method name (if used in instrumentation code this change will cause changes in that code, i.e. there is no binary compatibility then). * Fixed: Typos, improved final usage, added a lot of JavaDoc. [2021-05-27] v3.5.0 (Requires SNMP4J-Agent 3.5.0, SNMP4J-Agent-DB 3.5.0, and SNMP4J v3.5.1 or later) * Fixed [SFJ-239]: SNMP4J-AgentX subagent opens server port but does not use it. * Changed: Updated imports of org.snmp4j.agent.cfg to org.snmp4j.cfg. * Added [SFJ-201]: Allow ordering of ManagedObjects for restore by priorities. [2020-11-14] v3.2.0 (Requires SNMP4J-Agent 3.3.6, SNMP4J-Agent-DB 3.3.6, and SNMP4J v3.4.4 or later) * Fixed [SFJ-235]: DefaultTcpTransportMapping and TLSTM leak sockets on a reconnect with race condition. * Improved: Calling resetConnection followed by openSession on AgentXSubagent will close the transport to the master and suppress sending and thus also reopening connection to the master until a new session is explicitly opened again to that master agent. * Changed: AgentXPeer now accepts ConnectionOrientedTransportMappings instead any TransportMapping. The same is true for AgentXSubagent.openSession. These changes were necessary to support correct disconnect/resume/reconnect operations on DefaultTcpTransportMapping and TLSTM. * Fixed: NullPointerException in AgentXSubAgent.connect(A masterAddress, A localAddress, AgentXSession session, List stateListeners) caused by NPE in addMaster method if stateListeners is null. [2020-09-21] v3.1.1 (Requires SNMP4J-Agent 3.3.4, SNMP4J-Agent-DB 3.3.4, and SNMP4J v3.4.3 or later) * Fixed [SFJ-232]: AgentXSubagent does not allow to reset connection if master agent half closes it without sending AgentXClosePdu. A new method AgentXSubagent.resetConnection allows to reset such a broken connection anyway. [2020-07-20] v3.1.0 (Requires SNMP4J-Agent 3.3.4, SNMP4J-Agent-DB 3.3.4, and SNMP4J v3.4.2 or later) * Improved [SFJ-230]: SubAgentX.connect did not allow to register a TransportStateListener before a new connection was already established. Now the connect method accept a List of state listeners to register them before the ConnectionOrientedTransportMapping.listen() method is called. This changes the AgentXSubagent.addMaster in an incompatible way to extensions of that method. If you have extended the method a new compilation is necessary. [2019-04-18] v3.0.0 (Requires SNMP4J-Agent 3.2.0, SNMP4J-Agent-DB 3.2.0, and SNMP4J v3.1.0 or later) * Changed: BufferedMOMutableTableModel and BufferedMOTableModel got a new package org.snmp4j.agent.mox for clean Java 9 module support. * Added [SFJ-175]: Support Java 9 modules. * Added [SFJ-155]: Transactional and immediate 'on-value-change' persistency support using SNMP4J-Agent-DB. * Fixed [SFJ-169]: Removed log4j dependency because Log4j is no further maintained. * Improved: Added AgentConfigManager support for AgentXMasterAgent and SubAgentXConfigManager for AgentXSubagent. * Improved: Usage of Java Generics extended and improved. * Improved: JavaDoc. * Fixed: AgentppTestMib shared table default row growing due restart and reimporting persistent rows. * Added: AgentXCommandListener.closeAllSessions(byte reason) * Improved: Using now AtomicInteger instead of volatile. [2019-04-01] v2.6.0 (Requires SNMP4J-Agent 2.7.0 SNMP4J v2.6.4 or later) * Updated: SNMP4J-AgentX now requires Java 8 or later due to dependency updates of SNMP4J and SNMP4J-Agent dependencies to 2.7.0 and 2.6.4 respectively. [2016-12-19] v2.5.3 (Requires SNMP4J-Agent 2.5.3 SNMP4J v2.5.3 or later) * Fixed [SFJ-135]: Incorrect AgentX PDU encoding when SNMP4J-AgentX Subagent has sent a response with a too long OID (more than 128 sub-identifiers). [2016-09-12] v2.5.2 (Requires SNMP4J-Agent 2.5.3 SNMP4J v2.5.2 or later) * Fixed [SFJ-129]: AgentXMaster GET BULK processing fails with general variable binding error when running a GETBULK request on a sequence of registered scalars/single object nodes that is as long (or longer) than max repetitions of the request and non-repeaters is greater than one (AgentXPendingGet.java). SNMP4J-Agent 2.5.2 is need to fix a similar bug in (SnmpRequest.java). The computation of the repetitions vb start index was incorrect when a request is reprocessed (which happens with AgentX and single instance (scalar) registrations quite often). Timeout occurs when sending a GETBULK with non-repeaters but zero max-repetitions and on-zero number of repetition sub-request OIDs (e.g. 3 VBs and max-repetitions 0 and 2 non-repeaters). [2016-09-02] v2.5.1 (Requires SNMP4J-Agent 2.5.0 SNMP4J v2.5.0 or later) * Fixed [SFJ-128]: SNMP Get Bulk fails with a genErr when SNMP4J-AgentX master agent processes a GETBULK request that does not contain any repeaters (i.e. it could be replaced by a GETNEXT) (AgentXQueue.java). [2016-06-12] v2.5.0 (Requires SNMP4J-Agent 2.5.0 SNMP4J v2.5.0 or later) * Fixed: Added missing factory method in DummyBufferedMOMutableTableModel. * Added [SFJ-120]: Maven Central deployment support (refactored pom.xml). * Fixed: Removed a few unnecessary casts/improved generic usage. [2015-06-02] v2.2.2 (Requires SNMP4J-Agent 2.3.3 SNMP4J v2.3.3 or later) * Fixed [SFJ-106]: AgentXProtocol did not decode/encode the length of OIDs with 128 or more sub-identifiers correctly. Now the number of sub-identifiers is limited to 128 as required by RFC2741 ยง5.1. [2015-05-26] v2.2.1 (Requires SNMP4J-Agent 2.3.3 SNMP4J v2.3.0 or later) * Fixed [SFJ-104]: Infinite loop in AgentXNode.next(SubRequest request) causes worker thread to use max CPU kernel when a GETBULK PDU is processed that has no repeaters. [2014-05-12] v2.2.0 (Requires SNMP4J-Agent 2.2.0 SNMP4J v2.3.0 or later) * Improved: Generics support (removed unchecked warnings). * Added: BufferedMOTableModel and BufferMOMutableTableModel for efficiently implementing large virtual SNMP tables. [2014-02-14] v2.1.3 (Requires SNMP4J-Agent 2.1.1 SNMP4J v2.2.5 or later) * Fixed [SFJ-87]: The engine ID applied to the AgentXMasterAgent constructors was not set/used in the class itself (although it was used in the super class and thus in all SNMP4J-Agent contexts. Nevertheless, the SNMP4J-AgentX master agent example reported a wrong engine ID in its community MIB. [2014-02-11] v2.1.2 (Requires SNMP4J-Agent 2.1.1 SNMP4J v2.2.5 or later) * Updated: SNMP4J to 2.2.5 and SNMP4J-Agent to 2.1.1 to fix a serious bug in the AgentXCommandProcessor that could cause AgentX sub-requests to be dropped before they are answered. This bug was a regression in SNMP4J-Agent 2.0 and was fixed by SNMP4J-Agent 2.1.1. [2014-01-07] v2.1.1 (Requires SNMP4J-Agent 2.1.0 SNMP4J v2.2.3 or later) * Updated: License agreement. * Fixed: Release operation for index allocation. * Fixed: Added missing maven-plugin versions in pom.xml. Fixed repo URLs. * Fixed: Possibility of NPE in AgentXCommandProcessor.addRegion(..). * Fixed: [SFJ-65] AgentXSharedMOTableSupport not used/overwritten. * Fixed: [SFJ-46] SysOREntry was not initialized in master agent with subagent data because of an incorrect ManagedObject search scope. [2012-04-03] v2.1.0 (Requires SNMP4J-Agent 2.0.6 and SNMP4J 2.1.0) * Improved: [SJF-58] Shared table index allocation support. * Added: Relevant SNMP4J-AgentX MIBs. * Changed: Set volatile flag for AgentXSharedSession table to true. * Fixed: Priority for priorities > 127. [2011-11-23] v2.0.5 (Requires SNMP4J-Agent 2.0.5 and SNMP4J 2.0.3) * No changes, updated base libraries only. [2011-09-01] v2.0.4 (Requires SNMP4J-Agent 2.0.4 and SNMP4J 2.0.2) * Fixed [SFJ-50]: SysUpTimeImpl returns 1.000.000 times to high value (regression in SNMP4J-AGENT 2.0.0). Improved [SFJ-49]: TTLSTM and DefaultTcoTransportMapping on AIX did caught in an endless loop because select() there returns a spurious read indication while write data is pending in fact. [2011-09-01] v2.0.3 (Requires SNMP4J-Agent 2.0.3 and SNMP4J 2.0.1) * Fixed [SFJ-48]: Inconsistent register/unregister behavior of MODefaultServer when using zero length OctetString as context for register and unregister operation. This was a regression in version 2.0.0. [2011-09-01] v2.0.2 (Requires SNMP4J-Agent 2.0.2 and SNMP4J 2.0.1) * Fixed: [SFJ-47] Registration lookup in DefaultMOServer in some cases returned wrong results for MOScalar and possibly also when using several contexts. [2011-08-23] v2.0.1 (Requires SNMP4J-Agent 2.0.0 and SNMP4J 2.0.1) * Fixed: [SFJ-44] NullPointerException in master agent when starting agent. [2011-08-22] v2.0.0 (Requires SNMP4J-Agent 2.0.0 and SNMP4J 2.0.0) * Changed: Migrated code to use Java 1.6 Generics and System.nanoTime() where appropriate. * Added: Support of RFC 5343 (context engine ID discovery), RFC 5590 (Transport Subsystem for the SNMP), RFC 5591 (Transport Security Model for the SNMP - TSM), RFC 5953 (Transport Layer Security (TLS) Transport Model for the SNMP - TLSTM) [2011-01-03] v1.3.2 (Requires SNMP4J-Agent 1.4.2 and SNMP4J 1.11.2) * Updated: SNMP4J to 1.11.2 and SNMP4J-Agent to 1.4.2, log4j to 1.2.14. [2010-06-14] v1.3.1a (Requires SNMP4J-Agent 1.4.1 and SNMP4J 1.11.1) * Fixed: [SFJ-25] SNMP4J SFJ-25.SNMP4J-AgentX master and subagent expects/returns response on CLEANUPSET AgentX PDU which violates RFC 2741. * Fixed: [SFJ-24] High CPU usage in DefaultTcpTransportMapping with some JREs (especially Java 1.5 but also some 1.6). * Fixed: [SFJ-26] SubAgentX.closeSession(..) does not sent correct session ID to master agent. Instead 0 is sent. [2010-02-20] v1.3 (Requires SNMP4J-Agent 1.4 and SNMP4J 1.11) * Updated: SNMP4J-Agent to 1.11 and SNMP4J-Agent to 1.4. * Fixed: NullPointerException when closing subagent session without getting a timely response from the master. [2009-10-22] v1.2.2 (Requires SNMP4J-Agent 1.3.2 and SNMP4J 1.10.2) * Updated: SNMP4J-Agent to 1.3.2 and SNMP4J-Agent to 1.10.2. * Added: Maven build support. [2009-07-29] v1.2.1 (Requires SNMP4J-Agent 1.3.1 and SNMP4J 1.10.1) * Fixed: [SFJ-6] AgentXProtocol.getVariableDataLength method throws ClassCastException, if the incoming Variable argument is a VariantVariable representing an OctetString. * Removed: AgentXProtocol.getOctetStringLength(OctetString) replaced by AgentXProtocol.getOctetStringLength(int). [2009-04-30] v1.2 (Requires SNMP4J-Agent 1.3 and SNMP4J 1.10) * Improved: Wrapped Object.wait() call in AgentX.java in loop as suggested/needed by Java 1.6. [2008-12-15] v1.1.1 (Requires SNMP4J-Agent 1.2.2 and SNMP4J 1.9.3d) * Updated: SNMP4J-Agent to 1.9.3d and SNMP4J-Agent to 1.2.2. * Fixed: AgentXProtocol implementation could not serialize non-default AbstractVariable instances. [2008-08-29] v1.1d (Requires SNMP4J-Agent 1.2.1d and SNMP4J 1.9.3c) * Updated: SNMP4J-Agent to 1.9.3d to improve interoperability with AgentX TCP implementations that do not align AgentX packets with TCP messages. [2008-08-19] v1.1c (Requires SNMP4J-Agent 1.2.1c and SNMP4J 1.9.3b) * Updated: SNMP4J-Agent to 1.9.3c. [2008-08-11] v1.1b (Requires SNMP4J-Agent 1.2.1b and SNMP4J 1.9.3b) * Updated: SNMP4J to 1.9.3b. [2008-07-22] v1.1a (Requires SNMP4J-Agent 1.2.1a and SNMP4J 1.9.3a) * Updated: SNMP4J to 1.9.3a. [2008-07-21] v1.1 (Requires SNMP4J-Agent 1.2.1 and SNMP4J 1.9.3) * Updated: SNMP4J-Agent library to 1.2.1 and SNMP4J to 1.9.3. * Added: RegistrationCallback for fine grained error handling of AgentX subagent registration events/failures. * Improved: Shared table support, in particular index allocation error handling. [2008-05-19] v1.1 RC1 (Requires SNMP4J-Agent 1.2 and SNMP4J 1.9.1f) * Improved: Subagent object registration now correctly filters out objects from servers which do not match registration context. * Fixed: SubAgent.registerSharedTableRows could throw ConcurrentModificationException. * Fixed: SubAgent reconnect did not re-add message listener for AgentX connection. * Improved: AgentXMasterAgent now extends AgentConfigManager instead deprecated BaseAgent. * Added: AgentX session can now be closed by setting its admin status to down(2) in the AGENTX-MIB. * Added: Version information and check in org.snmp4j.agent.agentx.version.VersionInfo. * Improved: Removed unnecessary anonymous class definitions. [2007-07-25] v1.0.1 (Requires SNMP4J-Agent 1.1.4 and SNMP4J 1.8.2) * Updated: SNMP4J-Agent library to 1.1.4. * Improved: Handling of parse errors with new AgentXCommandProcessor.setMaxParseErrors(int) method. * Improved: Implemented logging TODOs. [2007-05-31] v1.0d (Requires SNMP4J-Agent 1.1.3 and SNMP4J 1.8.2) * Updated: SNMP4J-Agent library to 1.1.3. [2007-05-04] v1.0c (Requires SNMP4J-Agent 1.1.2 and SNMP4J 1.8.2) * Updated: SNMP4J and SNMP4J-Agent libraries. [2007-04-23] v1.0b (Requires SNMP4J-Agent 1.1.1a and SNMP4J 1.8.1a) * Updated: SNMP4J and SNMP4J-Agent libraries. [2007-04-02] v1.0a (Requires SNMP4J-Agent 1.1.1 and SNMP4J 1.8.1) * Fixed: Resource leak in AgentXSubagent.connect(..) when failing because of an IOException. * Fixed: AgentXCommandProcesser.notify(..). [2007-03-12] v1.0 (Requires SNMP4J-Agent 1.1 and SNMP4J 1.8.1) * Fixed: Issue with unremoved registrations (index and region) in master agent after sub-agent disconnect. * Fixed: NPE in deallocateIndex(..) of AgentXSharedMOTableSupport. * Fixed: Unknown registration warning reported by master agent on single registration removal by subagent. * Fixed: InvalidArgumentException when trying to unregister a previously registered row. * Fixed: AgentXSubagent.removeMOServer did actually add the server instead removing it. * Fixed: Resource cleanup in AgentXSubagent.connect(..). [2007-02-21] v1.0 RC2 (Requires SNMP4J-Agent 1.1 RC3 and SNMP4J 1.8) * Fixed: Several issues regarding sub-agent index allocation (reported by Peder Toftegaard Olsen). * Changed: Queries to lookup ManagedObjects for an AgentX subagent now reports whether the query is performed to change the matched ManagedObject (commit or undo) or not. [2007-02-05] v1.0 RC1 (Requires SNMP4J-Agent 1.1 and SNMP4J 1.8) * Fixed: RemoveAgentCapsPDU has not been processed by master agent. * Improved: Master AgentX request processing by removing central synchronization which could have caused timeouts on sub-agent requests. [2007-01-08] v1.0 beta-2 (Requires SNMP4J-Agent 1.1 and SNMP4J 1.8) * Changed: Made necessary changes for SNMP4J 1.8. * Added: Vetoable events for master agent changes. * Added: Master agent may be configured to accept only connections from loopback device. * Fixed: Several issues regarding decoding of large 32bit unsigned integer values. * Fixed: Connection loss detection and handling in master and subagent. * Fixed: Dangling registration causing duplicate region registration errors on sub-agent reconnect. [2006-09-30] v1.0 beta-1 (Requires SNMP4J-Agent 1.0.1 and SNMP4J 1.7.6) * Release Comment: There are still some areas which need more testing (i.e. shared table), but the API would not change significantly until 1.0 release in Q4/2006. * Fixed: Subagent did not ignore lower bound included flag for GET requests (this is needed for interoperability with NET-SNMP master agent). * Fixed: SET requests were not commited properly by sub-agent if SNMP4J-Agent 1.0 or later had been used. [2006-06-16] v1.0 alpha-0 * Initial release: Use at your own risk! There are many untested areas in the code. Most JavaDoc is missing although the code should be fairly complete. All AgentX features should be supported, including shared table, context, and full GETBULK support. The API supports master and sub-agents using TCP connections.