[
https://issues.apache.org/jira/browse/SLING-10402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17352304#comment-17352304
]
Hans-Peter Stoerr commented on SLING-10402:
-------------------------------------------
I had a look: currently the SmokeIT is unable to detect the problem when I
update org.mongodb:mongo-java-driver to 3.12.7 again. So I had a look around
for an easy check what does break: in
/content/slingshot/users/slingshot1/travel.html 3 of the 4 images break
(strange that the 4th one works, mind you). So I suggest adding the following
to the SmokeIT - then it really breaks when the mongo driver is wrongly
updated. To be extra sure, one could also check for a couple of URLs (among
those the 4 images) that they return HTTP 200 - when it breaks, you get a 500.
Wdyt?
{code}
@Test
public void verifyReadableImage() throws Exception {
try ( CloseableHttpClient client = newClient() ) {
HttpGet get = new HttpGet("http://localhost:" + slingHttpPort +
"/content/slingshot/users/slingshot1/travel/home/images/home.jpg");
try (CloseableHttpResponse response = client.execute(get,
httpClientContext)) {
if ( response.getStatusLine().getStatusCode() != 200 ) {
fail("Unexpected status line " + response.getStatusLine());
}
ByteArrayOutputStream bout = new ByteArrayOutputStream();
response.getEntity().writeTo(bout);
assertThat("Expected 1170194 bytes for image, but got " +
bout.size(), bout.size(), equalTo(1170194));
}
}
}
{code}
> MongoDB doesn't work anymore with Sling Starter
> -----------------------------------------------
>
> Key: SLING-10402
> URL: https://issues.apache.org/jira/browse/SLING-10402
> Project: Sling
> Issue Type: Bug
> Components: Starter
> Affects Versions: Starter 12
> Environment: Sling-Starter 12-SNAPSHOT (commit a6b94beb7b) with JDK
> 11 on MacOS
> Reporter: Hans-Peter Stoerr
> Assignee: Robert Munteanu
> Priority: Major
> Fix For: Starter 12
>
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> When starting the Sling Starter 12 SNAPSHOT with, the Repository doesn't seem
> to work properly right now when I'm using MongoDB. It starts up, but when I
> open http://localhost:8080/bin/browser.html, I get an exception reading from
> the database (see below). I tried with mongodb 4.4.6 (the latest one) and
> 4.0.3. This issue seems to be connected to the version of
> org.mongodb:mongo-java-driver - it came in when it was upgraded from 3.8.2 to
> 3.12.7; if I downgrade to 3.10.2 it works, but with 3.11.3, 3.12.7 or 3.12.8
> it doesn't.
> {code}
> Caused by: java.lang.RuntimeException: failed to read block from backend, id
> 6e01a3001107903ee3971f74d9ba7e4bf6d512d47b1006b708f7ca295658fead@0
> at
> org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore.load(AbstractBlobStore.java:509)
> at
> org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore.readBlock(AbstractBlobStore.java:500)
> at
> org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore.readBlob(AbstractBlobStore.java:486)
> at
> org.apache.jackrabbit.oak.spi.blob.BlobStoreInputStream.read(BlobStoreInputStream.java:45)
> ... 96 more
> Caused by: java.lang.UnsupportedOperationException: The BsonCodec can only
> encode to Bson
> at org.bson.codecs.BsonCodec.decode(BsonCodec.java:48)
> at org.bson.codecs.BsonCodec.decode(BsonCodec.java:33)
> at
> com.mongodb.operation.CommandResultArrayCodec.decode(CommandResultArrayCodec.java:52)
> at
> com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:60)
> at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
> at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
> at org.bson.codecs.configuration.LazyCodec.decode(LazyCodec.java:47)
> at
> org.bson.codecs.BsonDocumentCodec.readValue(BsonDocumentCodec.java:101)
> at
> com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:63)
> at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
> at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
> at
> com.mongodb.internal.connection.ReplyMessage.<init>(ReplyMessage.java:51)
> at
> com.mongodb.internal.connection.InternalStreamConnection.getCommandResult(InternalStreamConnection.java:413)
> at
> com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:309)
> at
> com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:259)
> at
> com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)
> at
> com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450)
> at
> com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)
> at
> com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:218)
> at
> com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)
> at
> com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)
> at
> com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)
> at
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:343)
> at
> com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:334)
> at
> com.mongodb.operation.CommandOperationHelper.executeCommandWithConnection(CommandOperationHelper.java:220)
> at com.mongodb.operation.FindOperation$1.call(FindOperation.java:731)
> at com.mongodb.operation.FindOperation$1.call(FindOperation.java:725)
> at
> com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)
> at com.mongodb.operation.FindOperation.execute(FindOperation.java:725)
> at com.mongodb.operation.FindOperation.execute(FindOperation.java:89)
> at
> com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:189)
> at
> com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:143)
> at
> com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92)
> at
> com.mongodb.client.internal.MongoIterableImpl.forEach(MongoIterableImpl.java:121)
> at
> com.mongodb.client.internal.MongoIterableImpl.into(MongoIterableImpl.java:133)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoBlobStore.getBlob(MongoBlobStore.java:234)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoBlobStore.readBlockFromBackend(MongoBlobStore.java:153)
> at
> org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore.load(AbstractBlobStore.java:507)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)