diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
index 68f5683..c2b2e3d 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
@@ -165,8 +165,8 @@
     @ManagedAttribute( defaultValue = "${" + PORT_MAX_OPEN_CONNECTIONS + "}" )
     int getMaxOpenConnections();
 
-    @ManagedAttribute( defaultValue = "${" + PORT_IGNORE_INVALID_SNI + "}" )
-    boolean getIgnoreInvalidSni();
+    @DerivedAttribute
+    boolean isIgnoreInvalidSni();
 
     @ManagedStatistic(statisticType = StatisticType.POINT_IN_TIME, units = StatisticUnit.COUNT,
             label = "Open Connections",
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
index bd7981a..a3b8156 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
@@ -86,9 +86,6 @@
     private int _maxOpenConnections;
 
     @ManagedAttributeField
-    private boolean _ignoreInvalidSni;
-
-    @ManagedAttributeField
     private int _threadPoolSize;
 
     @ManagedAttributeField
@@ -112,6 +109,8 @@
     private volatile int _tlsSessionTimeout;
     private volatile int _tlsSessionCacheSize;
     private volatile List<ConnectionPropertyEnricher> _connectionPropertyEnrichers;
+    private volatile boolean _ignoreInvalidSni;
+
 
     @ManagedObjectFactoryConstructor
     public AmqpPortImpl(Map<String, Object> attributes, Container<?> container)
@@ -152,7 +151,7 @@
     }
 
     @Override
-    public boolean getIgnoreInvalidSni()
+    public boolean isIgnoreInvalidSni()
     {
         return _ignoreInvalidSni;
     }
@@ -202,6 +201,7 @@
         _heartBeatDelay = getContextValue(Integer.class, AmqpPort.HEART_BEAT_DELAY);
         _tlsSessionTimeout = getContextValue(Integer.class, AmqpPort.TLS_SESSION_TIMEOUT);
         _tlsSessionCacheSize = getContextValue(Integer.class, AmqpPort.TLS_SESSION_CACHE_SIZE);
+        _ignoreInvalidSni = getContextValue(Boolean.class, AmqpPort.PORT_IGNORE_INVALID_SNI);
 
         @SuppressWarnings("unchecked")
         List<String> configurationPropertyEnrichers = getContextValue(List.class, AmqpPort.CONNECTION_PROPERTY_ENRICHERS);
diff --git a/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java b/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
index b646d10..869775e 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
@@ -81,7 +81,7 @@
         _netInputBuffer = QpidByteBuffer.allocateDirect(_networkBufferSize);
         _applicationBuffer = QpidByteBuffer.allocateDirect(_networkBufferSize);
         _netOutputBuffer = QpidByteBuffer.allocateDirect(_networkBufferSize);
-        _ignoreInvalidSni = port.getIgnoreInvalidSni();
+        _ignoreInvalidSni = port.isIgnoreInvalidSni();
     }
 
     @Override
