Skip to content

Fix schema designer query results not rendering in UI#23

Draft
Copilot wants to merge 12 commits intomainfrom
copilot/migrate-schemadesignerapi-to-v2-annotations
Draft

Fix schema designer query results not rendering in UI#23
Copilot wants to merge 12 commits intomainfrom
copilot/migrate-schemadesignerapi-to-v2-annotations

Conversation

Copy link

Copilot AI commented Feb 22, 2026

After the JAX-RS migration, the /schema-designer/query endpoint returns documents as a flat JSON array instead of the standard {numFound, start, docs} structure the UI expects, so the Documents panel stays empty even when results exist.

Root Cause

qr.getResponse() from SolrJ contains a SolrDocumentList (extends ArrayList) for the "response" key. Dumping it into the response Map and serializing via Jackson produces a plain array — losing numFound/start metadata:

// Before (broken): plain array, JS data.response.docs is undefined
"response": [{"id": "978-0641723445", ...}, ...]

// After (fixed): standard Solr response shape
"response": {"numFound": 4, "start": 0, "docs": [{"id": "978-0641723445", ...}, ...]}

Fix

In SchemaDesignerAPI.query(), detect SolrDocumentList when iterating the SolrJ response and convert it to an explicit map:

if ("response".equals(name) && val instanceof SolrDocumentList) {
    SolrDocumentList docList = (SolrDocumentList) val;
    Map<String, Object> responseObj = new HashMap<>();
    responseObj.put("numFound", docList.getNumFound());
    responseObj.put("start", docList.getStart());
    responseObj.put("docs", new ArrayList<>(docList));
    responseMap.put(name, responseObj);
} else {
    responseMap.put(name, val);
}

Test assertions updated to reflect the new structure (Map<String,Object> instead of casting to SolrDocumentList).

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • develocity.apache.org
    • Triggering command: /usr/lib/jvm/temurin-21-jdk-amd64/bin/java /usr/lib/jvm/temurin-21-jdk-amd64/bin/java -XX:ReservedCodeCacheSize=256m -XX:TieredStopAtLevel=1 -XX:&#43;UseParallelGC -XX:ActiveProcessorCount=1 --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED (dns block)
  • metadata.google.internal
    • Triggering command: /usr/lib/jvm/temurin-21-jdk-amd64/bin/java /usr/lib/jvm/temurin-21-jdk-amd64/bin/java -Dcommon-solr.dir=/home/REDACTED/work/solr/solr/solr -Dgradle.lib.dir=/home/REDACTED/.gradle/wrapper/dists/gradle-8.10-bin/deqhafrv1ntovfmgh0nh3npr9/gradle-8.10/lib -Dgradle.user.home=/home/REDACTED/.gradle -Dgradle.worker.jar=/home/REDACTED/.gradle/caches/8.10/workerMain/gradle-worker.jar -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Djava.security.manager=default -Djava.security.policy=/home/REDACTED/work/solr/solr/gradle/testing/randomization/policies/solr-tests.policy -Djava.util.logging.config.file=/home/REDACTED/work/solr/solr/gradle/testing/defaults-tests/logging.properties -Djdk.map.althashing.threshold=0 -Djetty.insecurerandom=1 -Djetty.testMode=1 -Djunit4.childvm.count=1 -Djunit4.childvm.id=0 -Dorg.gradle.internal.worker.tmpdir=/home/REDACTED/work/solr/solr/solr/core/build/tmp/test/work -DtempDir=/home/REDACTED/work/solr/solr/build/tmp/tests-tmp -Dtests.LUCENE_VERSION=10.3.2 -Dtests.asserts=true -Dtests.codec=random (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
…mments

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
…y docs guard)

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Copilot AI changed the title Migrate SchemaDesignerAPI from homegrown @EndPoint to JAX-RS V2 annotations Fix schema designer /query wiping indexed docs when sample docs unavailable Feb 22, 2026
…ader, sanitize filename

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Copilot AI changed the title Fix schema designer /query wiping indexed docs when sample docs unavailable Migrate SchemaDesignerAPI from homegrown @EndPoint annotations to JAX-RS V2 API Feb 23, 2026
…/docs map for JS rendering

Co-authored-by: epugh <22395+epugh@users.noreply.github.com>
Copilot AI changed the title Migrate SchemaDesignerAPI from homegrown @EndPoint annotations to JAX-RS V2 API Fix schema designer query results not rendering in UI Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants