org.nuxeo.ecm.core.api.ClientException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • InputStream object closes after declaration
    via Stack Overflow by phongdt
    ,
  • FULL PRODUCT VERSION : java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode) ADDITIONAL OS VERSION INFORMATION : Microsoft Windows [Version 6.3.9600] EXTRA RELEVANT SYSTEM CONFIGURATION : This issue relates to the following bug fix that was added in JRE 8 u60: http://bugs.java.com/view_bug.do?bug_id=8062552 A DESCRIPTION OF THE PROBLEM : Following a call to KeyStore.load() with non-null InputStream and password, the input stream appears to be closed, when using JRE 8 u60 with a default value for security property "keystore.type.compat" (true). Using previous versions of JRE (e.g. u51) or with "keystore.type.compat" set to "false", the input stream remains open. I haven't seen anything in documentation for https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html#load-java.io.InputStream-char:A- that talks about JRE closing the stream, I think that should be left to the caller to manage. REGRESSION. Last worked in version 8u51 ADDITIONAL REGRESSION INFORMATION: java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode) STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : 1. Create an instance of JKS keystore (ks1) 2. Persist it on file system or in memory 3. Create a new instance of JKS keystore (ks2) 4. Open the input stream pointing at persisted keystore from step 2 5. Load ks2, using the input stream from 4 6. Attempt to access the input stream after the loading has completed (by performing a call to either .reset, .available, etc) EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - Expectation is that the stream can continue being used by the caller (e.g. in my application the stream was pointing to a JarInputStream, and the code was attempting to iterate through the Jar entries, processing some of them as keystores) ACTUAL - The actual result was IOException: Stream is closed being thrown when trying to use the stream that was passed to KeyStore.load. ERROR MESSAGES/STACK TRACES THAT OCCUR : java.io.IOException: Stream Closed at java.io.FileInputStream.available(Native Method) or java.io.IOException: Stream closed at java.util.zip.ZipInputStream.ensureOpen(Unknown Source) ~[na:1.8.0_60] at java.util.zip.ZipInputStream.getNextEntry(Unknown Source) ~[na:1.8.0_60] at java.util.jar.JarInputStream.getNextEntry(Unknown Source) ~[na:1.8.0_60] at java.util.jar.JarInputStream.getNextJarEntry(Unknown Source) ~[na:1.8.0_60] REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- public class Foo { public static void main(String[] args) { try { KeyStore keystore1 = KeyStore.getInstance("JKS"); keystore1.load(null, null); File temp = File.createTempFile("temp-file-name", ".tmp"); FileOutputStream fos = new FileOutputStream(temp); keystore1.store(fos, "password".toCharArray()); fos.close(); FileInputStream fis = new FileInputStream(temp); KeyStore keystore2 = KeyStore.getInstance("JKS"); keystore2.load(fis, "password".toCharArray()); fis.available(); // this throws IOException: stream closed since jre8u60 fis.close(); } catch (Exception e) { System.out.println(e); } } } ---------- END SOURCE ---------- CUSTOMER SUBMITTED WORKAROUND : Temporary workaround seems to be invoking: Security.setProperty("keystore.type.compat", "false"); on application/applet initialization.
    via by Webbug Group,
  • FULL PRODUCT VERSION : java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode) ADDITIONAL OS VERSION INFORMATION : Microsoft Windows [Version 6.3.9600] EXTRA RELEVANT SYSTEM CONFIGURATION : This issue relates to the following bug fix that was added in JRE 8 u60: http://bugs.java.com/view_bug.do?bug_id=8062552 A DESCRIPTION OF THE PROBLEM : Following a call to KeyStore.load() with non-null InputStream and password, the input stream appears to be closed, when using JRE 8 u60 with a default value for security property "keystore.type.compat" (true). Using previous versions of JRE (e.g. u51) or with "keystore.type.compat" set to "false", the input stream remains open. I haven't seen anything in documentation for https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html#load-java.io.InputStream-char:A- that talks about JRE closing the stream, I think that should be left to the caller to manage. REGRESSION. Last worked in version 8u51 ADDITIONAL REGRESSION INFORMATION: java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode) STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : 1. Create an instance of JKS keystore (ks1) 2. Persist it on file system or in memory 3. Create a new instance of JKS keystore (ks2) 4. Open the input stream pointing at persisted keystore from step 2 5. Load ks2, using the input stream from 4 6. Attempt to access the input stream after the loading has completed (by performing a call to either .reset, .available, etc) EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - Expectation is that the stream can continue being used by the caller (e.g. in my application the stream was pointing to a JarInputStream, and the code was attempting to iterate through the Jar entries, processing some of them as keystores) ACTUAL - The actual result was IOException: Stream is closed being thrown when trying to use the stream that was passed to KeyStore.load. ERROR MESSAGES/STACK TRACES THAT OCCUR : java.io.IOException: Stream Closed at java.io.FileInputStream.available(Native Method) or java.io.IOException: Stream closed at java.util.zip.ZipInputStream.ensureOpen(Unknown Source) ~[na:1.8.0_60] at java.util.zip.ZipInputStream.getNextEntry(Unknown Source) ~[na:1.8.0_60] at java.util.jar.JarInputStream.getNextEntry(Unknown Source) ~[na:1.8.0_60] at java.util.jar.JarInputStream.getNextJarEntry(Unknown Source) ~[na:1.8.0_60] REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- public class Foo { public static void main(String[] args) { try { KeyStore keystore1 = KeyStore.getInstance("JKS"); keystore1.load(null, null); File temp = File.createTempFile("temp-file-name", ".tmp"); FileOutputStream fos = new FileOutputStream(temp); keystore1.store(fos, "password".toCharArray()); fos.close(); FileInputStream fis = new FileInputStream(temp); KeyStore keystore2 = KeyStore.getInstance("JKS"); keystore2.load(fis, "password".toCharArray()); fis.available(); // this throws IOException: stream closed since jre8u60 fis.close(); } catch (Exception e) { System.out.println(e); } } } ---------- END SOURCE ---------- CUSTOMER SUBMITTED WORKAROUND : Temporary workaround seems to be invoking: Security.setProperty("keystore.type.compat", "false"); on application/applet initialization.
    via by Webbug Group,
  • java execution stalls indefinitely
    via by Kúti Zsolt,
  • Cause of assertion failure
    via Stack Overflow by balor123
    ,
    • org.nuxeo.ecm.core.api.ClientException: Failed to save document DocumentModelImpl(649ce38e-92f6-4d7f-9c49-432fb874b97b, path=/asset-library/Test Thumb, title=Test Thumb) at org.nuxeo.ecm.core.api.AbstractSession.saveDocument(AbstractSession.java:1989) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.nuxeo.ecm.core.api.TransactionalCoreSessionWrapper.invoke(TransactionalCoreSessionWrapper.java:133) at com.sun.proxy.$Proxy44.saveDocument(Unknown Source) at org.nuxeo.ecm.platform.picture.PictureViewsGenerationWork.work(PictureViewsGenerationWork.java:45) at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:164) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.nuxeo.ecm.core.api.DocumentException: org.nuxeo.ecm.core.storage.StorageException: java.io.IOException: Stream Closed at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.getBinary(SQLSession.java:1154) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLContentProperty.setValue(SQLContentProperty.java:80) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.setValue(SQLComplexProperty.java:101) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexListProperty.setList(SQLComplexListProperty.java:278) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexListProperty.setValue(SQLComplexListProperty.java:86) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.setPropertyValue(SQLComplexProperty.java:222) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLDocumentLive.writeDocumentPart(SQLDocumentLive.java:178) at org.nuxeo.ecm.core.api.DocumentModelFactory.writeDocumentModel(DocumentModelFactory.java:298) at org.nuxeo.ecm.core.api.AbstractSession.writeModel(AbstractSession.java:541) at org.nuxeo.ecm.core.api.AbstractSession.saveDocument(AbstractSession.java:1961) ... 11 more Caused by: org.nuxeo.ecm.core.storage.StorageException: java.io.IOException: Stream Closed at org.nuxeo.ecm.core.storage.sql.SessionImpl.getBinary(SessionImpl.java:315) at org.nuxeo.ecm.core.storage.sql.ra.ConnectionImpl.getBinary(ConnectionImpl.java:161) at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.getBinary(SQLSession.java:1152) ... 20 more Caused by: java.io.IOException: Stream Closed at java.io.FileInputStream.available(Native Method) at org.nuxeo.ecm.core.storage.sql.AbstractBinaryManager.storeAndDigest(AbstractBinaryManager.java:97) at org.nuxeo.ecm.core.storage.sql.LocalBinaryManager.storeAndDigest(LocalBinaryManager.java:176) at org.nuxeo.ecm.core.storage.sql.LocalBinaryManager.getBinary(LocalBinaryManager.java:114) at org.nuxeo.ecm.core.storage.sql.SessionImpl.getBinary(SessionImpl.java:313) ... 22 more

    Users with the same issue

    Unknown visitor1 times, last one,