<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions tagged java.data</title>
<link>https://ask.clojure.org/index.php/tag/java.data</link>
<description></description>
<item>
<title>clojure.java.data/from-java throws stack overflow</title>
<link>https://ask.clojure.org/index.php/14379/clojure-java-data-from-java-throws-stack-overflow</link>
<description>&lt;p&gt;I use the following function to get scrollpoints from a  client io.qdrant.client.QdrantClient&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(def client ...) =&amp;gt; io.qdrant.client.QdrantClient

(defn make-scroll-points [collection-name k v]
  (builder/to-java Points$ScrollPoints
                   Points$ScrollPoints$Builder
                   (Points$ScrollPoints/newBuilder)
                   {:collectionName collection-name
                    :filter (builder/to-java Points$Filter
                                             Points$Filter$Builder
                                             (Points$Filter/newBuilder)
                                             {:addMust (ConditionFactory/matchKeyword (name k) (str v))}
                                             {})
                    :limit 1
                    :withPayload (WithPayloadSelectorFactory/enable true)}
                   {}))

(def scroll-points (qdrant/make-scroll-points  &amp;lt;collection-name&amp;gt; :user &quot;user-1&quot;))

(def scrolled (.get (.scrollAsync client scroll-points)))
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;(bean scrolled)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;works,  but when i do&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(clojure.java.data/from-java scrolled)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I get a stackoverflow error&lt;/p&gt;
</description>
<category>java.data</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14379/clojure-java-data-from-java-throws-stack-overflow</guid>
<pubDate>Mon, 10 Feb 2025 10:39:57 +0000</pubDate>
</item>
<item>
<title>clojure.java.data.builder fails with overloaded setter</title>
<link>https://ask.clojure.org/index.php/14349/clojure-java-data-builder-fails-with-overloaded-setter</link>
<description>&lt;p&gt;Trying to run make-chat-model&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(ns problem.problem
  (:require [clojure.java.data.builder :as builder])
  (:import (dev.langchain4j.model.openai OpenAiChatModel)
           (dev.langchain4j.model.openai OpenAiChatModel$OpenAiChatModelBuilder)))

(defn make-chat-model []
  (builder/to-java
    OpenAiChatModel 
    OpenAiChatModel$OpenAiChatModelBuilder
    (OpenAiChatModel/builder)
    {:baseUrl  &quot;localhost&quot;
     :apiKey (System/getenv &quot;OPENAI_API_KEY&quot;)} {}))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;fails with the following error &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:#error {}
 :cause Duplicate setter found for :modelName in dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder class
 :via
 [{:type java.lang.IllegalArgumentException
   :message Duplicate setter found for :modelName in dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder class
   :at [clojure.java.data.builder$find_setters$fn__9041 invoke builder.clj 66]}]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The code is in the following repo: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/gavlooth/problem&quot;&gt;https://github.com/gavlooth/problem&lt;/a&gt;&lt;/p&gt;
</description>
<category>java.data</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14349/clojure-java-data-builder-fails-with-overloaded-setter</guid>
<pubDate>Wed, 22 Jan 2025 20:27:39 +0000</pubDate>
</item>
<item>
<title>Should `(clojure.java.data/from-java-deep Class {})` work?</title>
<link>https://ask.clojure.org/index.php/13581/should-clojure-java-data-from-java-deep-class-work</link>
<description>&lt;p&gt;&lt;code&gt;(clojure.java.data/from-java-deep Class {})&lt;/code&gt; throws &lt;code&gt;StackOverflowError&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The docs don't say anything about this, but I'd like to see this case covered by java.data.&lt;/p&gt;
&lt;p&gt;You can find a tiny example in &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/henrik42/java.data-with-Class/tree/master&quot;&gt;https://github.com/henrik42/java.data-with-Class/tree/master&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This shows the error.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clj -X main/this-call-throws
Execution error (StackOverflowError) at clojure.java.data/add-deep-getter-fn (data.clj:121).
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As a workaround I'm using &lt;code&gt;(defmethod j/from-java-deep Class [clazz _] {:class clazz})&lt;/code&gt; -- but this is not really a solution since it does not even give you what &lt;code&gt;(from-java-shallow Class {})&lt;/code&gt; would give you.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;clj -X main/this-call-works
(j/from-java-deep Class) ;=&amp;gt;  {:class java.lang.Class}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(defmethod j/from-java-deep Class [clazz _] (j/from-java-shallow Class {}))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;instead isn't much better because it's not a deep-copy either.&lt;/p&gt;
</description>
<category>java.data</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13581/should-clojure-java-data-from-java-deep-class-work</guid>
<pubDate>Sun, 31 Dec 2023 11:17:16 +0000</pubDate>
</item>
</channel>
</rss>