diff --git a/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java b/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java --- a/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java +++ b/src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFIFD.java @@ -53,7 +53,7 @@ // A set of tag numbers corresponding to tags essential to decoding // the image and metadata required to interpret its samples. // - private static volatile Set essentialTags = null; + private static volatile Set essentialTags; private static void initializeEssentialTags() { Set tags = essentialTags; diff --git a/src/java.desktop/share/classes/com/sun/media/sound/SoftAudioPusher.java b/src/java.desktop/share/classes/com/sun/media/sound/SoftAudioPusher.java --- a/src/java.desktop/share/classes/com/sun/media/sound/SoftAudioPusher.java +++ b/src/java.desktop/share/classes/com/sun/media/sound/SoftAudioPusher.java @@ -37,7 +37,7 @@ */ public final class SoftAudioPusher implements Runnable { - private volatile boolean active = false; + private volatile boolean active; private SourceDataLine sourceDataLine = null; private Thread audiothread; private final AudioInputStream ais; diff --git a/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java b/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java --- a/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java +++ b/src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java @@ -76,7 +76,7 @@ public SoftAudioPusher pusher = null; public AudioInputStream jitter_stream = null; public SourceDataLine sourceDataLine = null; - public volatile long silent_samples = 0; + public volatile long silent_samples; private int framesize = 0; private final WeakReference weak_stream_link; private final AudioFloatConverter converter; diff --git a/src/java.desktop/share/classes/java/awt/Component.java b/src/java.desktop/share/classes/java/awt/Component.java --- a/src/java.desktop/share/classes/java/awt/Component.java +++ b/src/java.desktop/share/classes/java/awt/Component.java @@ -394,7 +394,7 @@ * @see #validate * @see #invalidate */ - private volatile boolean valid = false; + private volatile boolean valid; /** * The {@code DropTarget} associated with this component. @@ -9317,7 +9317,7 @@ * to add/remove ComponentListener and FocusListener to track * target Component's state. */ - private transient volatile int propertyListenersCount = 0; + private transient volatile int propertyListenersCount; /** * A component listener to track show/hide/resize events diff --git a/src/java.desktop/share/classes/java/awt/Container.java b/src/java.desktop/share/classes/java/awt/Container.java --- a/src/java.desktop/share/classes/java/awt/Container.java +++ b/src/java.desktop/share/classes/java/awt/Container.java @@ -3845,7 +3845,7 @@ * Number of PropertyChangeListener objects registered. It's used * to add/remove ContainerListener to track target Container's state. */ - private transient volatile int propertyListenersCount = 0; + private transient volatile int propertyListenersCount; /** * The handler to fire {@code PropertyChange} diff --git a/src/java.desktop/share/classes/java/awt/Dialog.java b/src/java.desktop/share/classes/java/awt/Dialog.java --- a/src/java.desktop/share/classes/java/awt/Dialog.java +++ b/src/java.desktop/share/classes/java/awt/Dialog.java @@ -291,7 +291,7 @@ * @see #hideAndDisposeHandler() * @see #shouldBlock() */ - transient volatile boolean isInHide = false; + transient volatile boolean isInHide; /* * Indicates that this dialog is being disposed. This flag is set to true at @@ -302,7 +302,7 @@ * @see #hideAndDisposeHandler() * @see #doDispose() */ - transient volatile boolean isInDispose = false; + transient volatile boolean isInDispose; private static final String base = "dialog"; private static int nameCounter = 0; diff --git a/src/java.desktop/share/classes/java/awt/Window.java b/src/java.desktop/share/classes/java/awt/Window.java --- a/src/java.desktop/share/classes/java/awt/Window.java +++ b/src/java.desktop/share/classes/java/awt/Window.java @@ -398,8 +398,8 @@ * These fields are initialized in the native peer code * or via AWTAccessor's WindowAccessor. */ - private transient volatile int securityWarningWidth = 0; - private transient volatile int securityWarningHeight = 0; + private transient volatile int securityWarningWidth; + private transient volatile int securityWarningHeight; static { /* ensure that the necessary native libraries are loaded */ diff --git a/src/java.desktop/share/classes/java/awt/event/InvocationEvent.java b/src/java.desktop/share/classes/java/awt/event/InvocationEvent.java --- a/src/java.desktop/share/classes/java/awt/event/InvocationEvent.java +++ b/src/java.desktop/share/classes/java/awt/event/InvocationEvent.java @@ -115,7 +115,7 @@ * @see #isDispatched * @since 1.7 */ - private volatile boolean dispatched = false; + private volatile boolean dispatched; /** * Set to true if dispatch() catches Throwable and stores it in the diff --git a/src/java.desktop/share/classes/java/awt/font/NumericShaper.java b/src/java.desktop/share/classes/java/awt/font/NumericShaper.java --- a/src/java.desktop/share/classes/java/awt/font/NumericShaper.java +++ b/src/java.desktop/share/classes/java/awt/font/NumericShaper.java @@ -1358,7 +1358,7 @@ // use a binary search with a cache - private transient volatile int stCache = 0; + private transient volatile int stCache; private boolean isStrongDirectional(char c) { int cachedIndex = stCache; diff --git a/src/java.desktop/share/classes/javax/swing/JComponent.java b/src/java.desktop/share/classes/javax/swing/JComponent.java --- a/src/java.desktop/share/classes/javax/swing/JComponent.java +++ b/src/java.desktop/share/classes/javax/swing/JComponent.java @@ -3695,7 +3695,7 @@ * to add/remove ContainerListener and FocusListener to track * target JComponent's state */ - private transient volatile int propertyListenersCount = 0; + private transient volatile int propertyListenersCount; /** * This field duplicates the function of the accessibleAWTFocusHandler field diff --git a/src/java.desktop/share/classes/sun/awt/AppContext.java b/src/java.desktop/share/classes/sun/awt/AppContext.java --- a/src/java.desktop/share/classes/sun/awt/AppContext.java +++ b/src/java.desktop/share/classes/sun/awt/AppContext.java @@ -161,7 +161,7 @@ contained in another AppContext. It is implicitly created for standalone apps only (i.e. not applets) */ - private static volatile AppContext mainAppContext = null; + private static volatile AppContext mainAppContext; private static class GetAppContextLock {}; private static final Object getAppContextLock = new GetAppContextLock(); diff --git a/src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java b/src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java --- a/src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java +++ b/src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java @@ -71,7 +71,7 @@ * A number of {@code FlavorListener}s currently registered * on this clipboard across all {@code AppContext}s. */ - private volatile int numberOfFlavorListeners = 0; + private volatile int numberOfFlavorListeners; /** * A set of {@code DataFlavor}s that is available on this clipboard. It is diff --git a/src/java.desktop/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java b/src/java.desktop/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java --- a/src/java.desktop/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java +++ b/src/java.desktop/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java @@ -74,7 +74,7 @@ private DragSourceContext dragSourceContext; private int sourceActions; - private static volatile boolean dragDropInProgress = false; + private static volatile boolean dragDropInProgress; private static boolean discardingMouseEvents = false; /* diff --git a/src/java.desktop/share/classes/sun/java2d/Disposer.java b/src/java.desktop/share/classes/sun/java2d/Disposer.java --- a/src/java.desktop/share/classes/sun/java2d/Disposer.java +++ b/src/java.desktop/share/classes/sun/java2d/Disposer.java @@ -183,7 +183,7 @@ /* * Set to indicate the queue is presently being polled. */ - public static volatile boolean pollingQueue = false; + public static volatile boolean pollingQueue; /* * The pollRemove() method is called back from a dispose method diff --git a/src/java.desktop/share/classes/sun/java2d/marlin/RendererStats.java b/src/java.desktop/share/classes/sun/java2d/marlin/RendererStats.java --- a/src/java.desktop/share/classes/sun/java2d/marlin/RendererStats.java +++ b/src/java.desktop/share/classes/sun/java2d/marlin/RendererStats.java @@ -334,7 +334,7 @@ static final class RendererStatsHolder { // singleton - private static volatile RendererStatsHolder SINGLETON = null; + private static volatile RendererStatsHolder SINGLETON; static synchronized RendererStatsHolder getInstance() { if (SINGLETON == null) { diff --git a/src/java.logging/share/classes/java/util/logging/LogManager.java b/src/java.logging/share/classes/java/util/logging/LogManager.java --- a/src/java.logging/share/classes/java/util/logging/LogManager.java +++ b/src/java.logging/share/classes/java/util/logging/LogManager.java @@ -336,7 +336,7 @@ * */ private boolean initializedCalled = false; - private volatile boolean initializationDone = false; + private volatile boolean initializationDone; final void ensureLogManagerInitialized() { final LogManager owner = this; if (initializationDone || owner != manager) { diff --git a/src/java.logging/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java b/src/java.logging/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java --- a/src/java.logging/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java +++ b/src/java.logging/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java @@ -36,9 +36,9 @@ */ public class HttpLogFormatter extends java.util.logging.SimpleFormatter { // Pattern for MessageHeader data. Mostly pairs within curly brackets - private static volatile Pattern pattern = null; + private static volatile Pattern pattern; // Pattern for Cookies - private static volatile Pattern cpattern = null; + private static volatile Pattern cpattern; public HttpLogFormatter() { if (pattern == null) { diff --git a/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnector.java b/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnector.java --- a/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnector.java +++ b/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnector.java @@ -2294,7 +2294,7 @@ * A static WeakReference to an {@link org.omg.CORBA.ORB ORB} to * connect unconnected stubs. **/ - private static volatile WeakReference orb = null; + private static volatile WeakReference orb; // TRACES & DEBUG //--------------- diff --git a/src/java.management/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java b/src/java.management/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java --- a/src/java.management/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java +++ b/src/java.management/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java @@ -105,7 +105,7 @@ private final MBeanServer outerShell; - private volatile MBeanServer mbsInterceptor = null; + private volatile MBeanServer mbsInterceptor; /** The MBeanServerDelegate object representing the MBean Server */ private final MBeanServerDelegate mBeanServerDelegateObject; diff --git a/src/java.management/share/classes/com/sun/jmx/mbeanserver/Repository.java b/src/java.management/share/classes/com/sun/jmx/mbeanserver/Repository.java --- a/src/java.management/share/classes/com/sun/jmx/mbeanserver/Repository.java +++ b/src/java.management/share/classes/com/sun/jmx/mbeanserver/Repository.java @@ -86,7 +86,7 @@ /** * Number of elements contained in the Repository */ - private volatile int nbElements = 0; + private volatile int nbElements; /** * Domain name of the server the repository is attached to. diff --git a/src/java.management/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java b/src/java.management/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java --- a/src/java.management/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java +++ b/src/java.management/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java @@ -417,7 +417,7 @@ private class NotifFetcher implements Runnable { - private volatile boolean alreadyLogged = false; + private volatile boolean alreadyLogged; private void logOnce(String msg, SecurityException x) { if (alreadyLogged) return; diff --git a/src/java.management/share/classes/javax/management/timer/Timer.java b/src/java.management/share/classes/javax/management/timer/Timer.java --- a/src/java.management/share/classes/javax/management/timer/Timer.java +++ b/src/java.management/share/classes/javax/management/timer/Timer.java @@ -162,7 +162,7 @@ * The notification counter ID. * Used to keep the max key value inserted into the timer table. */ - volatile private int counterID = 0; + volatile private int counterID; private java.util.Timer timer; diff --git a/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java b/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java --- a/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java +++ b/src/java.naming/share/classes/com/sun/jndi/ldap/Connection.java @@ -156,7 +156,7 @@ // Accessed only within sync methods private LdapRequest pendingRequests = null; - volatile IOException closureReason = null; + volatile IOException closureReason; volatile boolean useable = true; // is Connection still useable int readTimeout; diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java b/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java --- a/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java @@ -86,7 +86,7 @@ Exchange previous; volatile Throwable retryCause; volatile boolean expiredOnce; - volatile HttpResponse response = null; + volatile HttpResponse response; // Maximum number of times a request will be retried/redirected // for any reason @@ -109,7 +109,7 @@ */ volatile AuthenticationFilter.AuthInfo serverauth, proxyauth; // RedirectHandler - volatile int numberOfRedirects = 0; + volatile int numberOfRedirects; // This class is used to keep track of the connection timeout // across retries, when a ConnectException causes a retry. diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/ResponseContent.java b/src/java.net.http/share/classes/jdk/internal/net/http/ResponseContent.java --- a/src/java.net.http/share/classes/jdk/internal/net/http/ResponseContent.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/ResponseContent.java @@ -133,12 +133,12 @@ final String dbgTag = ResponseContent.this.dbgTag + "/ChunkedBodyParser"; volatile Throwable closedExceptionally; - volatile int partialChunklen = 0; // partially read chunk len + volatile int partialChunklen; // partially read chunk len volatile int chunklen = -1; // number of bytes in chunk volatile int bytesremaining; // number of bytes in chunk left to be read incl CRLF - volatile boolean cr = false; // tryReadChunkLength has found CR - volatile int chunkext = 0; // number of bytes already read in the chunk extension - volatile int digits = 0; // number of chunkLength bytes already read + volatile boolean cr; // tryReadChunkLength has found CR + volatile int chunkext; // number of bytes already read in the chunk extension + volatile int digits; // number of chunkLength bytes already read volatile int bytesToConsume; // number of bytes that still need to be consumed before proceeding volatile ChunkState state = ChunkState.READING_LENGTH; // current state volatile AbstractSubscription sub; @@ -459,7 +459,7 @@ final String dbgTag = ResponseContent.this.dbgTag + "/UnknownLengthBodyParser"; volatile Throwable closedExceptionally; volatile AbstractSubscription sub; - volatile int breceived = 0; + volatile int breceived; UnknownLengthBodyParser(Consumer onComplete) { this.onComplete = onComplete; diff --git a/src/java.rmi/share/classes/sun/rmi/server/Activation.java b/src/java.rmi/share/classes/sun/rmi/server/Activation.java --- a/src/java.rmi/share/classes/sun/rmi/server/Activation.java +++ b/src/java.rmi/share/classes/sun/rmi/server/Activation.java @@ -194,11 +194,11 @@ private transient ActivationSystem systemStub; private transient ActivationMonitor monitor; private transient Registry registry; - private transient volatile boolean shuttingDown = false; + private transient volatile boolean shuttingDown; private transient volatile Object startupLock; private transient Thread shutdownHook; - private static ResourceBundle resources = null; + private static ResourceBundle resources; /** * Create an uninitialized instance of Activation that can be @@ -1507,8 +1507,8 @@ /** descriptor for object */ ActivationDesc desc; /** the stub (if active) */ - volatile transient MarshalledObject stub = null; - volatile transient boolean removed = false; + volatile transient MarshalledObject stub; + volatile transient boolean removed; ObjectEntry(ActivationDesc desc) { this.desc = desc; diff --git a/src/java.rmi/share/classes/sun/rmi/transport/Target.java b/src/java.rmi/share/classes/sun/rmi/transport/Target.java --- a/src/java.rmi/share/classes/sun/rmi/transport/Target.java +++ b/src/java.rmi/share/classes/sun/rmi/transport/Target.java @@ -70,7 +70,7 @@ * the transport through which this target was exported and * through which remote calls will be allowed */ - private volatile Transport exportedTransport = null; + private volatile Transport exportedTransport; /** number to identify next callback thread created here */ private static int nextThreadNum = 0; diff --git a/src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyImpl.java b/src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyImpl.java --- a/src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyImpl.java +++ b/src/java.security.jgss/share/classes/javax/security/auth/kerberos/KeyImpl.java @@ -53,7 +53,7 @@ private transient byte[] keyBytes; private transient int keyType; - private transient volatile boolean destroyed = false; + private transient volatile boolean destroyed; /** diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java @@ -64,7 +64,7 @@ private static InetAddress localInetAddress; //caches local inet address private static final boolean DEBUG = sun.security.krb5.internal.Krb5.DEBUG; - private volatile int hashCode = 0; + private volatile int hashCode; private HostAddress(int dummy) {} diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java @@ -66,7 +66,7 @@ public class HostAddresses implements Cloneable { private static boolean DEBUG = sun.security.krb5.internal.Krb5.DEBUG; private HostAddress[] addresses = null; - private volatile int hashCode = 0; + private volatile int hashCode; // Warning: called by nativeccache.c public HostAddresses(HostAddress[] new_addresses) throws IOException { diff --git a/src/java.sql/share/classes/java/sql/DriverManager.java b/src/java.sql/share/classes/java/sql/DriverManager.java --- a/src/java.sql/share/classes/java/sql/DriverManager.java +++ b/src/java.sql/share/classes/java/sql/DriverManager.java @@ -84,9 +84,9 @@ // List of registered JDBC drivers private final static CopyOnWriteArrayList registeredDrivers = new CopyOnWriteArrayList<>(); - private static volatile int loginTimeout = 0; - private static volatile java.io.PrintWriter logWriter = null; - private static volatile java.io.PrintStream logStream = null; + private static volatile int loginTimeout; + private static volatile java.io.PrintWriter logWriter; + private static volatile java.io.PrintStream logStream; // Used in println() to synchronize logWriter private final static Object logSync = new Object(); // Used in ensureDriversInitialized() to synchronize driversInitialized diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java --- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java +++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xpath/regex/Token.java @@ -592,8 +592,8 @@ } // ------------------------------------------------------ - private static volatile Map categories = null; - private static volatile Map categories2 = null; + private static volatile Map categories; + private static volatile Map categories2; private static final Object lock = new Object(); private static final String[] categoryNames = { "Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java --- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java +++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/XSComplexTypeDecl.java @@ -75,10 +75,10 @@ XSParticleDecl fParticle = null; // if there is a particle, the content model corresponding to that particle - volatile XSCMValidator fCMValidator = null; + volatile XSCMValidator fCMValidator; // the content model that's sufficient for computing UPA - volatile XSCMValidator fUPACMValidator = null; + volatile XSCMValidator fUPACMValidator; // list of annotations affiliated with this type XSObjectListImpl fAnnotations = null; diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java --- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java +++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/SafeThread.java @@ -31,7 +31,7 @@ * once. */ public class SafeThread extends Thread { - private volatile boolean ran = false; + private volatile boolean ran; private static final AtomicInteger threadNumber = new AtomicInteger(1); private static String threadName() { diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/WorkerThread.java @@ -28,7 +28,7 @@ tasks in the form of Runnables. */ public class WorkerThread { - private volatile boolean done = false; + private volatile boolean done; private MessageQueueBackend mqb; private MessageQueue mq; diff --git a/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java b/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java --- a/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java +++ b/src/jdk.httpserver/share/classes/sun/net/httpserver/ServerImpl.java @@ -63,12 +63,12 @@ private Set rspConnections; private List events; private Object lolock = new Object(); - private volatile boolean finished = false; - private volatile boolean terminating = false; + private volatile boolean finished; + private volatile boolean terminating; private boolean bound = false; private boolean started = false; private volatile long time; /* current time */ - private volatile long subticks = 0; + private volatile long subticks; private volatile long ticks; /* number of clock ticks since server started */ private HttpServer wrapper;