< prev index next >

src/java.base/share/classes/sun/security/ssl/SSLEngineOutputRecord.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -49,22 +49,17 @@
         this.packetSize = SSLRecord.maxRecordSize;
         this.protocolVersion = ProtocolVersion.NONE;
     }
 
     @Override
-    public void close() throws IOException {
-        recordLock.lock();
-        try {
-            if (!isClosed) {
-                if (fragmenter != null && fragmenter.hasAlert()) {
-                    isCloseWaiting = true;
-                } else {
-                    super.close();
-                }
+    public synchronized void close() throws IOException {
+        if (!isClosed) {
+            if (fragmenter != null && fragmenter.hasAlert()) {
+                isCloseWaiting = true;
+            } else {
+                super.close();
             }
-        } finally {
-            recordLock.unlock();
         }
     }
 
     boolean isClosed() {
         return isClosed || isCloseWaiting;

@@ -235,12 +230,13 @@
                     fragLen = Math.min(fragLen, Record.maxDataSize);
                 } else {
                     fragLen = Record.maxDataSize;
                 }
 
-                // Calculate more impact, for example TLS 1.3 padding.
-                fragLen = calculateFragmentSize(fragLen);
+                if (fragmentSize > 0) {
+                    fragLen = Math.min(fragLen, fragmentSize);
+                }
             }
 
             int dstPos = destination.position();
             int dstContent = dstPos + headerSize +
                                 writeCipher.getExplicitNonceSize();

@@ -441,12 +437,13 @@
                         fragLen, headerSize);
             } else {
                 fragLen = Record.maxDataSize;
             }
 
-            // Calculate more impact, for example TLS 1.3 padding.
-            fragLen = calculateFragmentSize(fragLen);
+            if (fragmentSize > 0) {
+                fragLen = Math.min(fragLen, fragmentSize);
+            }
 
             int dstPos = dstBuf.position();
             int dstLim = dstBuf.limit();
             int dstContent = dstPos + headerSize +
                                     memo.encodeCipher.getExplicitNonceSize();
< prev index next >